Zitat:
Bmp SS_NOTIFY dilemma
Nachdem ich meine Nase nochmal tiefer in die
WinApi Referenz gesteckt habe bin ich auf eine bessere Lösung gekommen.
SetClassLongPtr(Cardinal(hWndArr[1]), Integer(GCL_HCURSOR), Integer(LoadCursor(hWndArr[0], IDC_HAND)));
sorry muss da leider noch mal leicht eingreifen.
32 und 64 Bit der zustand ist das SetClassLongPtr je nach verwendeten kompilat zwei werte annehmen kann 4Bit\32Bit 8Bit\64Bit
deshalb ja der umstand das man nicht mehr SetClassLong oder vergleichbares verwenden soll.
SetClassLongPtr(Cardinal(hWndArr[1]), Integer(GCL_HCURSOR), Integer(LoadCursor(hWndArr[0], IDC_HAND)));
zu
SetClassLongPtr(Cardinal(hWndArr[1]), Integer(GCL_HCURSOR), LONG_PTR(LoadCursor(hWndArr[0], IDC_HAND)));
oder
SetClassLongPtr(Cardinal(hWndArr[1]), WParam(GCL_HCURSOR), LParam(LoadCursor(hWndArr[0], IDC_HAND)));
Dann bist du auf den richtigen weg.
Nicht nur die richtige Funktion sondern auch den entsprechenden Daten Typ dazu verwenden sonst macht es keinen sinn.
WParam, LParam sollte die richtige Bit Größe zuweisen je nach dem welche art von Class man verwendet WNDCLASSEX \ WNDCLASS
Siehe dazu nochmal!
Code:
ULONG_PTR SetClassLongPtrA(
HWND hWnd,
int nIndex,
LONG_PTR dwNewLong
);
LONG_PTR
Nebenbei kannst du in deiner Class einen Speicher reservieren der für deine Propertys zuständig ist.
Siehe dazu "cbWndExtra"