SetTimer + CallbackFunktion
-
nö.....das is es auch nicht......
-
ok...also wenn die funktion static is, gehts.....aba jetzt kommt das nächste Problem:
Beim Aufruf von z.B. MessageBox:
error C2352: 'CWnd::MessageBoxA' : illegal call of non-static member function
Also muss ich MessageBox irgendwie anders aufrufen....über welche Variable bzw. wie stell ich das jetzt an`??
-
::MessageBox ohne das CWnd davor
-
der aufruf lautet:
MessageBox("kdf","kdf",MB_OK);
das CWnd:: schreibt er nur in der Fehlermeldung....
Aber trotzdem: mit ::MessageBox() funktionierts...danke!!
-
...aber wie kann ich jetzt zum Beispiel eine Funktion meines Dialoges aufrufen????
::onOK() funktioniert zum Beispiel nicht??!!
-
ne, weil die funktion statisch ist, kann man nicht auf die member zugreifen. du könntest den klassenzeiger global speichern und dann darauf zugreifen
-
danke....
hab mir jetzt in der zwischezeit mit einem SendDlgItemMessage und BM_CLICK geholfen....
-
Original erstellt von <sta>:
ne, weil die funktion statisch ist, kann man nicht auf die member zugreifen. du könntest den klassenzeiger global speichern und dann darauf zugreifenGlobale Variablen in C++ ... scheiße!!! Ne, gib der Callback-Funktion einfach den Pointer auf deine Klasseninstanz mit. Ganz einfach.
[ Dieser Beitrag wurde am 03.04.2003 um 01:32 Uhr von WebFritzi editiert. ]
-
lustig fritzi. die api ist eben leider c und da muss man mal eben ein paar schlechte sachen machen, wenn man sowas braucht. die SetTimer Api bietet keine Möglichkeit einen Wert auf die Klasseninstanz mitzugeben.
Wenn doch, dann sag mir wie und wo das möglich ist.
-
Du hast recht. Ich war so daran gewöhnt, denn bei den meisten Callbacks gibt es so einen optionalen DWORD-Parameter. Man könnte den Zeiger aber noch in der USER-DATA des HWNDs speichern.