我要在一个窗体中嵌入一个对话框,就是比如在打开e盘某个文件夹时显示的那个窗体,我要嵌入一个非模态对话框,这个对话框是用WTL做的,但现在怎么都嵌不进去,而且一运行窗体都死掉了。
win7,vs2008.郁闷死了,怎么弄都不行。帮帮我,看看我的代码,哪里有问题啊。对话框设为child建立对话框的代码:
BOOL CResourceManageDlg::Show(HWND hWnd, HWND* m_childhWnd, RECT* childRect)
{
ASSERT(hWnd); *m_childhWnd = Create(hWnd);
 
ForceWindowToForeground(*m_childhWnd);
ShowWindow(SW_NORMAL); GetWindowRect(childRect); return TRUE;
}
嵌入对话框的代码:                       HWND hwndFind;
                        hwndFind =  GetForegroundWindow();
TCHAR Buffer[255];
ZeroMemory(Buffer, 255);
GetClassName(hwndFind, Buffer, 255); HWND hDefView;
HWND hUiView;
if (_tcscmp(Buffer, L"CabinetWClass") == 0)
{
hDefView = FindWindowEx(hwndFind, 0, L"ShellTabWindowClass", NULL);
ASSERT(hDefView);
m_aDefviews.insert(hDefView);
hDefView = FindWindowEx(hDefView, 0, L"DUIViewWndClassName", NULL);
ASSERT(hDefView);
m_aDefviews.insert(hDefView);
hDefView = FindWindowEx(hDefView, 0, L"DirectUIHWND", NULL);
ASSERT(hDefView);
m_aDefviews.insert(hDefView); EnumChildWindows(hDefView, EnumChildProc, 0);
m_aDefviews.insert(m_targethwnd);
m_aDefviews.insert(m_temphwnd); hDefView = m_temphwnd; hUiView = FindWindowEx(hDefView, 0, L"DirectUIHWND", NULL);

if (hDefView > 0 && hUiView > 0)
{
RECT rctDefView;
RECT rctUiView;
::GetWindowRect(hDefView, &rctDefView);
::GetWindowRect(hUiView, &rctUiView);                                        m_ResourceManageDlg.Show(hDefView, &childhwnd, &childRect);  iheight = rctUiView.bottom - rctUiView.top; ::MoveWindow(hUiView, 
rctUiView.left,
rctUiView.top, 
rctUiView.left + 400,
rctUiView.bottom - rctUiView.top, 
TRUE
);  ::MoveWindow(childhwnd, 
rctUiView.left + 400,
rctUiView.top + 400,
rctUiView.right - (rctUiView.left + 400),
iheight,
TRUE
);
::SetParent(childhwnd, hDefView);
::UpdateWindow(childhwnd);
::ShowWindow(hUiView, SW_SHOWNORMAL);
::UpdateWindow(hUiView);
::ShowWindow(childhwnd, SW_SHOWNORMAL);
                             }