当前窗口与活动窗口的区别

活动窗口:用于获取当前线程中用于接收消息的窗口句柄。这个是相对线程来说的。假设一个程序有多个窗体,每个窗体由一个线程控制。窗口_取活动窗口(线程ID)得到当前程序中活动窗体的窗口句柄。如果当前程序不是调用该函数的程序,则就会返回0.这也说明了这个命令是相对线程的,也可以说是相对于该程序的。如果窗口_取活动窗口(0)相当于窗口_取当前窗口()。如果窗口_取活动窗口(线程ID)每个程序都能取到句柄,说明线程ID有问题,线程ID此刻等于0.

当前窗口:得到的是当前最前端窗口,也就是激活的、有焦点的、接收键盘消息的窗口。这是相对系统来说的。注意这里不一定是最前面的窗口,同时还要满足有焦点这个条件。

--------------------------------------------------------------------------------------------

小实验:一个程序创建三个窗口:_启动窗口,窗口1,窗口2。在_启动窗口上有两个按钮,分别用来载入窗口1,窗口2

            在_启动窗口上加个时钟,时钟间隔设置为1秒。

.版本 2

.子程序 _时钟1_周期事件      //启动窗口,时钟事件
.局部变量 主线程

主线程 = 窗口_取窗口线程ID (_启动窗口.取窗口句柄 ())
输出调试文本 (到文本 (窗口_取活动窗口 (主线程)))            //取得启动窗口的主线程,当用按钮切换窗口时,发现输出当前活动窗口的句柄在不断变化

  //经过实验这里的线程不一定是主线程,程序的其他窗口线程ID同样是有效的,即也可以获得其他活动窗口的窗口句柄。不过其他线程一开始没有值。这也决定了其他线程也可以调用这个命令。

----------------------------------------------------------------------------------------------

窗口_取活动窗口(0),则相当于窗口_取前台窗口()

----------------------------------------------------------------------------------------------

窗口_取活动窗口(线程ID),如果切换到其他进程,则返回0。这样就局限在这个线程了。0表示已经跳出这个线程了。所以0也是很有意义的。

窗口_取前台窗口()则基本都有句柄返回。

---------------------------------------------------------------------------------------------

总结一下:窗口_取活动窗口(线程ID)只局限于该线程的程序,当该程序处于获得焦点的状态时,才能获得该程序活动窗口的句柄,否则获取的是0。

               窗口_取前台窗口()         获得当前取得焦点窗口的句柄,不局限于某一个程序。

转载于:https://www.cnblogs.com/wanghj-dz/archive/2011/06/15/2082162.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值