Dialog nach erstellen zeichnen
-
Servus,
ich möchte in einem Dialog ein Graph zeichnen lassen. Das wird er auch, jedoch erst wenn ein WM_PAINT kommt, d.h. das Fenster über den Bildschirmrand hinausgeschoben wird o.ä.
Header
// Dialogfelddaten //{{AFX_DATA(CKennlinie) enum { IDD = IDD_Kennlinie }; CXYChart m_Kennlinie; CButton m_Interp_IGBT; CButton m_Interp_Diode; CButton m_Daten_IGBT; CButton m_Daten_Diode; CScrollBar m_SCROLL; CListBox m_List; //}}AFX_DATAIn void CKennlinie::OnPaint()
//////////////////////////////////////////////////////////////////// CWnd* Frame = (CWnd*)GetDlgItem(IDC_Kennlinie); CDC* pDC = Frame->GetDC(); CRect rect; Frame->GetClientRect(rect); //////////////////////////////////////////////////////////////////// m_Kennlinie.OnDraw( pDC, rect );Was muss ich tun, damit nach dem erstellen der Graph bereits angezeigt wird?
-
The WM_PAINT message is sent when the UpdateWindow or RedrawWindow member function is called.
Wenn Du willst, dass etwas neu gezeichnet wird, kannst Du entweder (umständlich) das ganze Fenster neu zeichnen lassen oder Du veranlasst, dass nur dein Graph neu gezeichnet wird.
Wenn Du den Graph nur einmal zu Beginn zeichnen willst, dann würde sich ein Draw-Aufruf in OnInitDlg() empfehlen.
-
Mir ist aufgefallen, dass er gezeichnet wird. Aber in der falschen Reihenfolge ?!?
Das heißt, der Graph erscheint für ein kurzen Augenblick und wird dann vom Fenster überzeichnet!
-
Dann ändere doch die Reihenfolge! Zeichne den Graph danach.