设置前台(前景)窗口
更新日期:2010-12-30
━━━━━━━━━━━━━━━━━━━━━━━━
一、当需要激活的窗口是其他程序的窗口时,很简单,如下:
HWND hWnd=::FindWindow("Notepad",NULL);
::ShowWindow(hWnd,SW_RESTORE);
::SetForegroundWindow(hWnd);
二、当需要设置的窗口是自己程序的窗口。上面的代码就无效了。原因如下:
Windows 9x/2000中SetForegroundWindow函数当用户正在操作其他窗口
时是不能强制某个窗口为前景窗口的,而是激活窗口并调用FlashWindowEx函数来通知用户。
三、解决方法:
方法一、(最理想的)
/****************************************************************************
将窗口设置为前景窗口。
关键API的使用::AttachThreadInput,这个API是连接两个线程的,使其共享输入焦点,键盘状态等等。
通常,系统内的每个线程都有自