Thema: Delphi Checkbox selbst zeichnen

Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: Checkbox selbst zeichnen

  Alt 6. Mai 2007, 08:09
Naja, entweder musst du die Checkbox Subclassen (siehe Luckies Tuts) oder du "übermalst" sie einfach.

Wie geht das ? So:
Delphi-Quellcode:

// Procedure zum zeichnen der Buttons im eigenem Style
procedure DrawMyButtonstyle(lpdis: PDrawItemStruct; Checked: Boolean);
var
  r: TRect;
begin
  r := lpdis.rcItem;
  Fillrect(lpdis.hDC, lpdis.rcItem, GetSysColor(COLOR_ACTIVEBORDER));
  //...
end;

function DialogProc(...); oder was auch immer
var
  lpdis: PDrawItemStruct;

  //...

    WM_DRAWITEM: // Buttons (Checkboxen) herausfischen und Style ändern
      begin
        Result := FALSE;
        lpdis := PDrawItemStruct(lParam);
        if Boolean(lpdis.CtlType and ODT_BUTTON) then
        begin
          if Boolean(lpdis.itemState and ODS_CHECKED)
            then DrawMyButtonStyle(lpdis, TRUE)
            else DrawMyButtonStyle(lpdis, FALSE);
          Result := TRUE;
        end;
      end;
Delphi-Referenz durchsuchenWM_DRAWITEM das Control muss den Style BS_OWNERDRAW enthalten.

Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat