018
29.11.2003, 22:29 Uhr
niels_ole_salscheider
|
Zitat: |
0xdeadbeef postete Nein, nein, nein. Das hat damit nichts zu tun. Wenn rect statisch deklariert ist, muss es in der .cpp explizit initialisiert werden. Also:
C++: |
//.h
class ControlClass { public: static RECT rect; }
//.cpp RECT ControlClass::rect(0, 0, 100, 100); //initialisieren. Werte können anders sein
|
Ansonsten bindet -> stärker als &, also ist &StrPointer->rect schon in Ordnung. Allerdings ginge in diesem Fall auch einfach &ControlClass::rect, weil das Ding ja statisch ist.
|
Klappt irgendwie nicht ganz... Ich poste mal den Code:
C++: |
struct ControlClass { static TCHAR text[200]; PAINTSTRUCT ps; HDC hdc; static LOGFONT Unterstrichen; static HFONT hUnterstrichen; static BOOL aktiv; static HPEN pen; static RECT rect; static TEXTMETRIC tm; }; . . . LRESULT CALLBACK LinkProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { ControlClass *CC = (ControlClass*) GetWindowLong(hwnd, GWL_USERDATA); switch(message) { case WM_CREATE: CC = new ControlClass; SetWindowLong(hwnd, GWL_USERDATA, (long) CC); . . .
|
PS: Das ganze soll mal ein eigenes Steuerelement werden... |