J
Ich vermute, dein Problem liegt darin, dass du die Methoden in die Dialogklasse gebaut hast und diese nun keine Gelegenheit mehr hat, die Message-Queue des Dialogs abzuarbeiten. Die saubere Lösung für dieses Problem wäre es, die rechenintensiven Aufgaben in einen Thread zu verlagern (zB CWinThread). Die einfachere Variante ist es, eine Methode "ProcessMessages" zu implementieren, welche die MessageQueue abarbeitet. Diese rufst du dann in der rechenintensiven Methode zyklisch auf:
void CMyDialog::ProcessMessages()
{
MSG msg;
// Process existing messages in the application's message queue.
// When the queue is empty, do clean up and return.
while (::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
{
if (!AfxGetThread()->PumpMessage())
return;
}
}
Hope that helps.
-junix