Zitat von
x000x:
Moin moin Emil,
zeichnest du den Button selber (BS_OWNERDRAW)? Dann wäre deine Paint-Methode interessant.
... aber ohne Code ist es wirklich schwierig ...
PS: Ich hatte vor einiger Zeit auch mal einen
nonVCL Button erstellt (incl. laden von JPGs)
Evtl. kannste da einige Codeschnipsel verwenden...
Das sieht so aus ..
Delphi-Quellcode:
function RegisterButton(ButtonClass: PAnsiChar): BOOL;
var
IsInitialized : BOOL;
CLASS_NAME : PAnsiChar;
begin
CLASS_NAME := ButtonClass;
dlgClass.cbSize := SIZEOF(dlgClass);
IsInitialized := GetClassInfoEx(hInstance, ButtonClass, dlgClass);
if not IsInitialized then
with dlgClass do
begin
IsInitialized := (GetClassInfoEx(hInstance, 'BUTTON', dlgClass));
if IsInitialized then
begin
ButOldProc(lpfnWndProc, 1);
ButOldExtra(cbWndExtra, 1);
lpfnWndProc := @ImageButtonProc;
// Reserviere EXTEND_EXTRA bytes zum speichern privater properties
cbWndExtra := cbWndExtra + (EXTEND_EXTRA * 4);
hInstance := GetInstance;
lpszClassName := CLASS_NAME;
IsInitialized := Bool(RegisterClassEx(dlgClass));
end;
end;
Result := IsInitialized;
end;
Um den ganzen Code jetzt zu posten wäre etwas viel da alles noch über die Winproc läuft usw...
aber so kannst meinen ansatz sehen.
gruss Emil