CPro1,CPro2是两个类,hWnd1是在CPro1中声明的变量。
在CPro1中: hWnd1=::FindWindow(NULL, "Tecplot 360 2010");
在CPro2中: CPro1 m_pro1;
::SendMessage(m_pro1.hWnd1,WM_CLOSE,0,0);我用上述方法想在类CPro2中关闭hWnd1对应的窗口,但不行,没有反应。在类CPro1中用
::SendMessage(hWnd1,WM_CLOSE,0,0);可以关闭的。求解释
在CPro1中: hWnd1=::FindWindow(NULL, "Tecplot 360 2010");
在CPro2中: CPro1 m_pro1;
::SendMessage(m_pro1.hWnd1,WM_CLOSE,0,0);我用上述方法想在类CPro2中关闭hWnd1对应的窗口,但不行,没有反应。在类CPro1中用
::SendMessage(hWnd1,WM_CLOSE,0,0);可以关闭的。求解释
::SendMessage(m_pro1.hWnd1,WM_CLOSE,0,0);
---------------------------------------------
这里调用的m_pro1.hWnd1窗口句柄是否有效?
还不如直接发送,CPro2中调用下面的代码 hWnd1=::FindWindow(NULL, "Tecplot 360 2010");
::SendMessage(hWnd1,WM_CLOSE,0,0);
hWnd1=::FindWindow(NULL, "Tecplot 360 2010");
HWND hWnd2=AfxGetMainWnd()->m_hWnd;
::SetParent(hWnd1,hWnd2);
CPro1 m_pro1;
::SendMessage(m_pro1.hWnd1,WM_CLOSE,0,0);
hWnd1=::FindWindow(NULL, "Tecplot 360 2010");
又不是在构它的构造函数中的话
hWnd1又没初始化,关得了才怪了很像这个帖子
http://topic.csdn.net/u/20110517/17/d06f6378-140f-4759-b3a8-645d959d2577.html
如果你是在CPro2 中直接这么写的C/C++ code
CPro1 m_pro1;
::SendMessage(m_pro1.hWnd1,WM_CLOSE,0,0);hWnd1=::FindWindow(NULL, "Tecplot 360 2010");
又不是在构它的构造函数中的话
hWnd1又没初始化,关得了才怪了
有道理,那怎么才能获得第一个窗口的指针呢
if ( pWnd!=NULL )
{
pWnd->PostMessage(WM_QUIT,NULL,NULL);
}