P
Hallo Martin!
Frohes Neues und danke für deine Antwort!
Ich habe das Problem immer noch nicht gelöst, allerdings immerhin einige Erkenntnisse gewonnen.
Nochmal zur Übersicht:
"CDlgTest2View" -> öffnet modal -> "Dialog1" -> öffnet modal -> "Dialog2" -> erstellt nicht-modal -> x mal "Dialog3"
Beim Wechsel zwischen Dialog1 und Dialog2 ist kein Dialog3->SetParent(m_pParent) Aufruf notwendig. Da scheint dieser automatischer Transfer statt zu finden, den du angedeutet hast.
Die nicht modalen Dialog3 Fenster sind dann auf der Ebene des aktuell aktiven Dialogs (1 oder 2) und dort frei bewegbar. Also alles OK!
Von "CDlgTest2View" -> "Dialog1" bleibt die Sache weiterhin problematisch.
Wenn ich in der Dialog1::OnInitDialog() versuche mit:
BOOL CMyForm1::OnInitDialog()
{
CDialogEx::OnInitDialog();
int i = 0;
CMyForm3 * pForm3 = NULL;
for (i = 0; i < m_ptCWnd->GetCount(); i++)
{
pForm3 = (CMyForm3 *)m_ptCWnd->GetAt(i);
//pForm3->SetOwner(this);
pForm3->SetParent(this);
}
return TRUE;
}
zu arbeiten bleibt das System nach ausführen von "SetParent" in der "CWnd::WindowwProc" hängen. Das Programm ist eingefroren.
Hier ein Auszug aus der Aufrufliste:
mfc120ud.dll!CWnd::WindowProc(unsigned int message, unsigned int wParam, long lParam) Zeile 2094 + 0x22 Bytes C++
mfc120ud.dll!AfxCallWndProc(CWnd * pWnd, HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam) Zeile 282 + 0x1e Bytes C++
mfc120ud.dll!AfxWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam) Zeile 435 C++
mfc120ud.dll!AfxWndProcBase(HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam) Zeile 299 + 0x15 Bytes C++
user32.dll!_InternalCallWinProc@20() + 0x23 Bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 Bytes
user32.dll!_DispatchClientMessage@24() + 0x51 Bytes
user32.dll!___fnDWORD@4() + 0x2b Bytes
ntdll.dll!_KiUserCallbackDispatcher@12() + 0x2e Bytes
user32.dll!_NtUserSetParent@8() + 0x15 Bytes
mfc120ud.dll!CWnd::SetParent(CWnd * pWndNewParent) Zeile 216 + 0x18 Bytes C++
DlgTest2.exe!CMyForm1::OnInitDialog() Zeile 77 C++