Wo DrawText im Dialog ausführen
-
Hallo zusammen.
Meine Anwendung für WinCE hat einen Dialog. Auf diesem möchte ich gerne mit DrawText einen Text schreiben. Nur weiß ich nicht wo ich dies machen muss.
Ich habe es z.B. in OnCtlColor OnEraseBkgnd OnDrawItem WindowProc. Wenn ich durchsteppe, sehe ich auch das die Texte gezeichnet werden. Allerdings bevor der Dialog gezeichnet bzw. gefüllt wird. Heißt steppe ich weiter erscheint der fertige Dialog die Texte sind weg.
Auf meiner Main Form mach ich das in OnDraw. Das funktioniert wunderbar. Nur im Dialog weiß ich nicht wo ich das machen muss.
-
im Dialog wird doch immer in der OnPaint gezeichnet, sollte genau so bei WinCE sein.
-
Das ist jetzt vielleicht ne blöde Frage, also bitte nicht hauen:
Wie komme ich an OnPaint?
Unter Eigenschaften wird OnPaint nicht aufgeführt:
http://img689.imageshack.us/img689/6931/cdialogeigenschaften.jpg
Wenn ich die Methode von Hand hinzufüge, wird diese nicht aufgerufen:
//.h afx_msg void OnPaint(); //.cpp void CFunctionsDlg::OnPaint() { }
Ist OnPaint das selbe wie die WM_PAINT Behandlung in der WindowProc?
LRESULT CFunctionsDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_PAINT: CDC *pDC; pDC = GetDC(); ... ... break; } return CDialog::WindowProc(message, wParam, lParam); }
Dort habe ich den selben Effekt beim steppen: Text steht da bevor der Dialog zu sehen ist und ich verschwunden wenn der Dialog zu sehen ist.
-
1. Wenn Du einen OnPaint Handler einbaust musst Du auch einen Eintrag in in die Mesage Map setzen
2. Wenn Du einen WM_PAINT Handler baust musst Du auch BeginPaint/EndPaint benutzen oder CPaintDC.
3. GetDC u verwenden ist absoluter UnfugBTW: Wie wäre es mit einem Tutorial.