在A窗口初始化的时候设置:
::SetWindowPos(this->m_hWnd,HWND_TOPMOST,0,0,800,79,SWP_HIDEWINDOW);
情况一:
由其他程序调用
::SetForegroundWindow(hwnd);//hwnd为由窗口名字找到的A窗口句柄
::ShowWindow(hwnd,SW_SHOW);
后
窗口在最前面,调用::GetForegroundWindow() 返回的是A窗口的句柄。
情况二:
只调用
::ShowWindow(hwnd,SW_SHOW); //A窗口也显示到最前面
再调用 ::GetForegroundWindow() 返回的不是A窗口的句柄,是A窗口显示之前看到的最前面的窗口,
A窗口非全屏窗口。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
GetForegroundWindow()获取的窗口句柄是:
(1)刚刚执行的应用程序窗口的句柄。
(2)调用SetForegroundWindow()的窗口的句柄。
(3)当前使用的窗口。(活动窗口?)
注:GetForegroundWindow()获取的值不会受ShowWindow函数影响。
(A全屏窗口,B占局部屏幕)A没有TOPMOST属性。B有TOPMOST属性。
当前窗口是A,打开新程序,新程序主窗口是B。
B会显示在A的上面。GetForegroundWindow()获取B的窗口句柄。
调用ShowWindow隐藏B,显示A,GetForegroundWindow()获取的仍是B的窗口句柄。
点击A窗口,GetForegroundWindow()获取A窗口句柄。
调用ShowWindow显示B,GetForegroundWindow()获取的是A的窗口句柄。A窗口正常刷新
点击B,GetForegroundWindow()获取B窗口句柄。A窗口刷新停止。
如果屏幕看到的窗口是TOPMOST属性窗口,再打开没有TOPMOST属性窗口,
没有TOPMOST属性的窗口在下面,不会显示在前面。
ezhong的博客园:http://www.cnblogs.com/ezhong/