Ich habe eine schreibgeschützte Edit Control, die eine mehrzeilige Zeichenfolge anzeigt. Ich setze die Hintergrundfarbe dafür mit WM_CTLCOLORSTATIC
in der Fensterprozedur des Dialogs, von dem mein Steuerelement abgeleitet ist. Wenn das Fenster geschrumpft ist, erscheint scrollbar für das Edit Control. Es funktioniert alles gut, Sie können wählen, kopieren, scrollen Sie den Text nach links und rechts.WinAPI: Zeichnen Sie Rechtecke hinter Edit Control Text
case WM_CTLCOLORSTATIC:
if ((HWND)lParam == GetDlgItem(hwndDlg, IDC_DEBUGGER_DISASSEMBLY))
{
SetBkColor((HDC)wParam, RGB(255, 255, 255));
return (LRESULT) GetStockObject(DC_BRUSH);
}
break;
Ich möchte benutzerdefinierte Hintergrundfarbe hinter einer bestimmten Zeile vornehmen. Meine normale BG ist dort weiß, und für diese Linie möchte ich sagen, blau.
Ich habe versucht, WM_PAINT
für die Bearbeitungssteuerung zu verwenden, aber dann scheint ich den Text noch einmal zu zeichnen, oder der ursprüngliche Text des Steuerelements wird nicht sichtbar sein, bis ich es auswähle. Und wenn ich manuell auch Text zeichne, scrollt es nicht wie der ursprüngliche Text.
Da dies linienorientiert zu sein scheint, verwenden Sie stattdessen eine Listensteuerung? – alk
hätte ich, wenn es ursprünglich von mir erstellt wurde. Hier muss ich ein vorhandenes Steuerelement optimieren, wobei viel Logik bereits darauf basiert, dass es Edit ist. – feos
Related: http://StackOverflow.com/Q/8024157/694576 – alk