Anfänger verzweiflung mit OnPait()
-
Nach 2 Stunden durchlesen von allen möglichen Lösungen aus diese Forum (ich weiss nicht weiter) ... muss ich doch die Frage stellen!
- Habe Dialogbasierte Anwendung
- Von einen Dialog wird andere Aufgerufenif (m_dEditor.DoModal() == IDOK) { CHotelDlg::OnPaint(); Prozedur(); // dauert ca. 20 sekunden }Problem ist, daß mein Programm lässt sich mit alle ruhe erst die Prozedur() ausführen bevor HotelDlg wieder gezeigt wird...

Mein OnPaint() sieht so aus:
void CHotelDlg::OnPaint(void) { if (IsIconic()) { CPaintDC dc(this); // Gerätekontext zum Zeichnen SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // Symbol in Clientrechteck zentrieren int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Symbol zeichnen dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } }Gibt`da einfache trick was ein Anfäger wiessen muss oder muss ich wieder stunden lang Bücher durch walzen...
Danke für dier Hilfe
Adam
-
hmm statt aufrufen der funktion, mach doch mal ein invalidate() oder invalidateRect()!
-
Handler Funktionen die mit On anfangen werden nicht von einem selber aufgerufen, sondern das Windows System ruft diese bei Bedarf auf.
Mach Dich bitte mit der Technik vertraut, indem Du einige Tutorials oder Bücher liest.