Farbige Steuerelemente
-
Hallo
Kann mir vielleicht jemand eine Denkhilfe geben, wie ich Farbige Steuerelemente hinbekomme.
Bin so ein bisschen am verzweifeln.
-
Wenn man z.B. eine Textbox umfärben will muss man diese Message hier abfangen:
LRESULT CALLBACK DialogProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) { switch( message ) { case WM_INITDIALOG: .... case WM_CTLCOLOREDIT: //schrift blau färben, hintergrund weiß SetTextColor((HDC)wParam,0x00ff0000); SetBkColor((HDC)wParam, 0x00ffffff); lb.lbStyle = BS_SOLID; lb.lbColor = 0x00ff0000; //Fette schrift SelectObject((HDC)wParam, hFatFont); return (long)&lb; case WM_CLOSE: ... } }
-
Habe noch eine kurze frage
lp was für ein datentype ?lb.lbStyle = BS_SOLID;
lb.lbColor = 0x00ff0000;
-
So sollte es richtig sein:
BOOL DialogProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) { static HBRUSH hEditBrush; switch( message ) { case WM_INITDIALOG: hEditBrush = CreateSolidBrush( RGB(255, 0, 0) ); return FALSE; case WM_CTLCOLOREDIT: //schrift blau färben, hintergrund weiß SetTextColor((HDC)wParam, RGB(255, 0, 0)); SetBkColor((HDC)wParam, RGB(255, 255, 255)); return (BOOL)hEditBrush; ... } return FALSE; }
Ich hab die fette Schrift mal weggelassen. Erstens war das nicht auf die Farbe bezogen, und zweitens macht man das besser mit WM_SETFONT, und dann auch nur einmal!
-
LOGBRUSH lb;
-
danke es klappt
-
illuminator schrieb:
LOGBRUSH lb;
Du solltest aber einen HBRUSH zurückgeben.
-
edit
-
illuminator schrieb:
edit
Hä?
-
ich hab müll geschrieben
-
Der Brush muss freigegeben werden! Muss noch bei WebFritzy's Beispiel hinzugefügt werden.