M
ich hab das jetzt so gemacht:
CZeichnen.h
void Anzeigen();
static UINT DialogAnzeigen (LPVOID pParam);
CZeichnen.cpp
UINT CZeichnen::DialogAnzeigen(LPVOID pParam)
{
CZeichnen* pDlg = (CZeichnen*) pParam;
pDlg->Anzeigen();
return 0;
}
void CZeichnen::Anzeigen()
{
Aufbereitung = new CDatenaufbereitung2;
Aufbereitung->Create(IDD_Aufbereitung2);
Aufbereitung->ShowWindow(SW_SHOW);
}
CZeichnen.cpp //Buttonklick
AfxBeginThread (DialogAnzeigen, this, THREAD_PRIORITY_NORMAL);
......... //Nun kommen eine Menge Zeichenroutinen
Sinn der Sache soll sein, dass während des Zeichnens, was ein bissl länger dauert auf Grund von riesigen Datenmengen, ein Dialogfeld angezeigt wird, wo "Daten werden aufbereitet..." drinsteht.
Hab das vorher mit DoModal() gemacht ohne Thread. Da aber dann der Focus dort war, ging die Zeichenroutine logischerweise nicht. Desshalb mach ich das jetzt mit der ShowWindow Version. Problem dabei ist: Mache ich das nicht im Thread, wird mir zwar der Dialog aber ohne Inhalt angezeigt und ich habe keine Lust, da noch irgendwie was "rumzupfuschen".
Desshalb soll ein Thread her. In der Version, wie es jetzt aber ist, zeigt er den gar nicht an. Wenn ich unter der Funktion Anzeigen() aber noch ne MessageBox packe, zeigt er beides an, aber erst dann, wenn die Zeichnungsroutine abgearbeitet ist, obwohl der Thread vorher gestartet wird.