我把关于对话框设为child,在一个菜单里面打开隐藏的非模态对话框。
在程序中查找它的句柄:
HWND hwnd1 = ::FindWindowEx(this->m_hWnd,NULL,NULL,_T("{D66E1B6E-FFCD-4bef-B368-18B8A26838D3}"));我把OnDsSdsd()放到OnInitDialog里面,找不到句柄,我用sp++找遍了也没找到,但可以肯定的是非模态对话框是存在的。
如果手动单击菜单事件,就可以找到。不知道是什么原因。
void CTestDlg::OnDsSdsd()
{
// TODO: 在此添加命令处理程序代码
CAboutDlg *test;
test = new CAboutDlg;
test->Create(IDD_ABOUTBOX,NULL);
test->MoveWindow(0,0,0,0,TRUE);
test->ShowWindow(SW_HIDE);
}
在程序中查找它的句柄:
HWND hwnd1 = ::FindWindowEx(this->m_hWnd,NULL,NULL,_T("{D66E1B6E-FFCD-4bef-B368-18B8A26838D3}"));我把OnDsSdsd()放到OnInitDialog里面,找不到句柄,我用sp++找遍了也没找到,但可以肯定的是非模态对话框是存在的。
如果手动单击菜单事件,就可以找到。不知道是什么原因。
void CTestDlg::OnDsSdsd()
{
// TODO: 在此添加命令处理程序代码
CAboutDlg *test;
test = new CAboutDlg;
test->Create(IDD_ABOUTBOX,NULL);
test->MoveWindow(0,0,0,0,TRUE);
test->ShowWindow(SW_HIDE);
}
不想体现焦点变换的过程
现在的问题是这样设置了之后,FindWindowEx找不到打开的那个非模态对话框的句柄。
test->ShowWindow(SW_HIDE);你这样设置之后, 使用spy++能找到它不?
spy++看倒的,它确实是this->m_hWnd的子窗口?