以文本方式查看主题 - W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL (http://bbs.xml.org.cn/index.asp) -- 『 编程心得 』 (http://bbs.xml.org.cn/list.asp?boardid=42) ---- 如何将将后台窗口激活到前台 (http://bbs.xml.org.cn/dispbbs.asp?boardid=42&rootid=&id=87517) |
-- 作者:葛靖青001 -- 发布时间:11/7/2010 11:12:00 AM -- 如何将将后台窗口激活到前台 下面这种方法是我见到的最理想的,还有一些其他的方法,像通过SetWindowsPos这个API设置窗口的Z-oder到最顶层,再设置回去。还有通过把当前窗口设置到底层,然后激活目标窗口等等方法。 HWND hCurWnd = NULL; DWORD dwMyID; DWORD dwCurID; hCurWnd = ::GetForegroundWindow(); 关键API的使用::AttachThreadInput,这个API是连接两个线程的,使其共享输入焦点,键盘状态等等。 下面这段COPY自百度百科: 通常,系统内的每个线程都有自己的输入队列。本函数(既“连接线程输入函数”)允许线程和进程共享输入队列。连接了线程后,输入焦点、窗口激活、鼠标捕获、键盘状态以及输入队列状态都会进入共享状态 返回值 Long,非零表示成功,零表示失败,会设置会GetLastError 参数表 参数 类型及说明 idAttach Long,欲连接线程的标识符(ID) idAttachTo Long,与idAttach线程连接的另一个线程的标识符 fAttach Long,TRUE(非零)连接,FALSE撤消连接。 调用这个函数时,会重设键盘状态。参数类型前的IN表示这个参数是输入参数,可以当它没有。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
31.250ms |