⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_15997.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:15997 发表者:浩公 发表日期:2002-09-24 15:45:07
<br>主题:用FindWindow找不到隐藏的窗口?
<br>内容:我用FindWindow查一个窗口,正常时可以找到但一旦把这个窗口隐藏就找不到了,何故?怎么才能找到那个隐藏的窗口呢,十分感谢/!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:Norton AntivVirus 回复日期:2002-09-24 17:59:25
<br>内容:这个方法不好,我想应该这样;<BR>在程序启动的时候,创建一个内核对象,另外一个程序如果想知道这个程序是否已经运行,只需去打开这个对象,如果成功,表明该程序已经运行,否则就表示没有对象<BR><BR>用CreateMutex,CreateProcess等
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浩公 回复日期:2002-09-25 09:08:31
<br>内容:我想我的意思你没有懂。我是用A.exe 调用B.dll,当满足一定条件时,b.dll里查找A的主窗口,并向之发送WM_CLOSE,,窗口显示时可以的。<BR>但是一旦窗口隐藏起来我就发现A.exe并没有退出,何故?有没有其它更好的方法?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:徐景周 回复日期:2002-09-25 10:00:57
<br>内容:可试试下面方法:<BR>// 寻找桌面上正运行的所有窗本,并将正显示的存储到数组pWnd[]中<BR>CWnd *pWnd[MAXNUM_RUNWINDOW], *pWndCur;<BR>int nWndNum = 0;<BR><BR>&nbsp;&nbsp;pWnd[nWndNum]= GetWindow(GW_HWNDFIRST);<BR>&nbsp;&nbsp;while (pWnd[nWndNum] != NULL)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp; pWndCur = pWnd[nWndNum];<BR>&nbsp;&nbsp; CString str;<BR>&nbsp;&nbsp; pWndCur-&gt;GetWindowText(str);<BR>&nbsp;&nbsp; if (pWndCur-&gt;IsWindowVisible() && ! pWndCur-&gt;IsIconic() &&! pWndCur-&gt;GetParent() &&pWndCur != this &&pWndCur != GetDesktopWindow() &&! str.IsEmpty() &&str != "Program Manager")<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;// 列表数中窗体数加一<BR>&nbsp;&nbsp;&nbsp;&nbsp;nWndNum++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;// 为了安全起见,窗体数不应超过总窗体数!!<BR>&nbsp;&nbsp;&nbsp;&nbsp;nWndNum = min(nWndNum, MAXNUM_RUNWINDOW-1);<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; pWnd[nWndNum] = pWndCur-&gt;GetWindow(GW_HWNDNEXT);<BR>&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;if (nWndNum)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;// 将正在运行的所有桌面窗体最小化<BR>&nbsp;&nbsp;for (int i=0; i&lt;nWndNum;++i)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp; pWnd[i]-&gt;ShowWindow(SW_SHOWMINNOACTIVE);<BR>&nbsp;&nbsp; m_pWnd[i] = pWnd[i];<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;m_nWndNum = nWndNum;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;// 将已运行并被最小化的桌面窗体还原显示<BR>&nbsp;&nbsp;for (int i=m_nWndNum-1; i&gt;=0; --i)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp; if (::IsWindow(m_pWnd[i]-&gt;m_hWnd) &&<BR>&nbsp;&nbsp; m_pWnd[i]-&gt;IsIconic())<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_pWnd[i]-&gt;ShowWindow(SW_RESTORE);<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_pWnd[i]-&gt;UpdateWindow();<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;//将控件注册器的窗体提到最前<BR>&nbsp;&nbsp;SetForegroundWindow();<BR><BR>具体可参看下面源码:<BR>http://www.csdn.net/cnshare/soft/8/8041.shtm<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:Norton AntivVirus 回复日期:2002-09-25 10:24:17
<br>内容:没有退出,不一定没有找到该窗口,我认为即便窗口隐藏,也可以用FindWindow找到的,是不是你的WM_CLOSE消息应用程序中有没有处理啊,还可以用自定义的消息,如果收到,就自己去退出程序,先看看有没有收到消息!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浩公 回复日期:2002-09-25 12:42:50
<br>内容:不是,我在没有隐藏窗口时,一切正常即,发送WM_CLOSE,可以关闭窗口,然后我在PreCreateWindow只加了<BR>cs.dwExStyle=WS_EX_TOOLWINDOW;<BR>cs.style=WS_POPUP;<BR>再运行就不行了。没有关闭窗口。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Norton AntivVirus 回复日期:2002-09-25 12:48:42
<br>内容:cs.dwExStyle |= WS_EX_TOOLWINDOW;<BR>cs.style |= WS_POPUP;<BR>试试看!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浩公 回复日期:2002-09-25 12:53:53
<br>内容:我要不显示窗口,这样恐怕不行。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Norton AntivVirus 回复日期:2002-09-25 12:55:59
<br>内容:不显示就<BR>ShowWindow(SW_HIDE);不就可以了吗<BR><BR>不知道你现在使用什么方法Hide窗口?<BR><BR>可以自定义消息的!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浩公 回复日期:2002-09-25 12:59:45
<br>内容:那窗口还不是一闪而过吗?很讨厌。我用CS.STYLE=WS_POPUP,就是想让他从来都不显示窗口。有什么办法吗。不过你要太忙的话,就不打扰你了。<BR>2002-9-25 13:01:39

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -