Button für Farbauswahl erstellen,
-
Moin
in meiner Anwendung kann ich die Textfarbe über den Dialog "ChooseColor" ändern, was soweit auch funktioniert. Jetzt würde ich den Dialog gerne mit einem Button aufrufen der so aussieht:
http://www.picupload.net/s-5ff68de8ca5a619b77160e2f6cced04e-gif.php
wie gehe ich da am besten vor. Das Farbige Rechteck, soll immer mit der jeweils gewählten Farbe ausgefüllt werden.
-
Ich denke das einfachste wäre den Button selbst zu zeichnen. Der Suchbegriff "Ownerdraw" sollte dir in der MSDN genug Anregungen bieten

Greetz!
M.T.
-
Einfacher ginge es noch, einen normalen Button zu erstellen und auf dem ein Bitmap zu plazieren, das eben nur rot ist. Auf WinAPI.net war mal ein Beispiel dazu, leider funktioniert die Seite nicht mehr. Vielleicht hat einer der Forianer das Beispiel parat...?
-
Also ich hab jetzt auf meinem Button ein Icon gesetzt das so ausieht wie der von mir gewünschte Button, wie bekomme ich nun Farbe in das Rechteck des Icons?
-
Also die Region des Icons dess Farbe geändert werden muss liegt (1;1) bis (38;12) der icon Koordinaten oder in Buttonkoordinaten ausgedückt (6;6) bis (43;17), welche Möglichkeit habe ich diesen Bereich mit einer Farbe aufzufüllen?
-
Nimm ein Bitmap anstatt eines Icons. Das kannst du dann intern verändern.
-
Hiermit färbe ich z.B ein "static control" mit RGB Farben aus CHOOSECOLOR.
Habe es innerhalb eines Propertysheets bei WM_PAINT und WM_ERASEBKGND entsprechend eingebunden.void FillBlock(HWND hwnd, COLORREF color) { HDC hdc = GetDC(hwnd);; RECT rect; HBRUSH hbrush, holdbrush; GetClientRect(hwnd,&rect); hbrush = CreateSolidBrush(color); holdbrush = (HBRUSH) SelectObject(hdc,hbrush); Rectangle(hdc,rect.left,rect.top,rect.right,rect.bottom); DeleteObject(SelectObject(hdc,holdbrush)); ReleaseDC(hwnd,hdc); }Hope this helps,
Frank