Timer in Abgeleiteter Klasse von CWnd starten
-
Hallo an alle,
ich habe folgendes Problem. Ich brauche in einer Klasse XY die für sich vollkommend selbstständig laufen soll ein Timer.
Spricht, Klasse wird Instanziert. Timer wird gestartet im Konstuktor, alle 500 ms soll die OnTimer der Klasse XY aufgerufen, und z.B eine Message an das die View versendet.
Im Desturktor wird der Timer dann wieder gestoppt.Als Elternklasse habe ich die CWnd benutzt. Wenn ich jetzt aber im Konsturktor der Klasse XY SetTimer machen möcht knallt es immer in der afxwin2.inl line: 182
Wie kann ich das beheben, so das der Timer läuft. :?
Hier mal der Code für die SetTimer im Konstruktor
CXTalkCom::CXTalkCom(CWnd* pParent) : m_uiTimer(0) , m_i(0) { ... if (this->SetTimer(ID_XXX_TIMER,500,NULL) != ID_XXX_TIMER) { AfxMessageBox("Timer inititalization failed"); } ... }
Hier mal der Code für die OnTimer in der Klasse CXCTalkCom
void CXTalkCom::OnTimer(UINT nIDEvent) { .... int XX= GetXYZ(); .... m_pParent->PostMessage(WM_NEW_XX(WPARAM)XXX); CWnd::OnTimer(nIDEvent); }
Danke im Voraus schon mal,
Gruss Muchte
-
Zeig bitte mal: afxwin2.inl line: 182
Und definiere "knallt".Meine Vermutung ist: Das Fenster existiert noch nicht.
-
Ahhhh das tut natürlich weh!!!!!
Sollte natürlich erst mal ein create machen, sonst geht ja der timer auch nicht. Da das fenster ja nicht sichtbar sein soll hatte ich daran nicht gedacht.
Danke vielmals
Gruss
-
Kein Problem.
Mir kam die Zeilenangabe nur so bekannt vor.