窗口Z顺序

 

 

在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/

转载于:https://www.cnblogs.com/ezhong/archive/2011/09/19/2181290.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值