开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2130|回复: 1
收起左侧

[求助] 窗口激活和置顶的区别?

[复制链接]
结帖率:100% (86/86)
发表于 2017-11-7 22:10:06 | 显示全部楼层 |阅读模式   北京市北京市
在论坛搜索有人回答说:
"激活是从最小化恢复到原来样子,置顶是到其他窗口前面"

测试过程如下:
1 将一个窗口最小化
窗口_激活()和窗口_置顶()都没有反应
2 将一个窗口非最小化置于其他窗口后面
窗口_激活()和窗口_置顶()都可以置当前窗口
3 查看精易的源码
  
子程序名返回值类型公开备 注
窗口_激活整数型 若函数调用成功,则返回原先活动窗口的句柄。若函数调用失败,则返回值为NULL   。
参数名类 型参考可空数组备 注
窗口句柄整数型欲激活窗口的句柄
变量名类 型静态数组备 注
局_当前线程ID  
局_目标线程ID  
局_返回值整数型 
局_当前线程ID = GetCurrentThreadId ()
局_目标线程ID = GetWindowThreadProcessId (窗口句柄, 0)
AttachThreadInput (局_目标线程ID, 局_当前线程ID, )
局_返回值 = SetActiveWindow (窗口句柄)
AttachThreadInput (局_目标线程ID, 局_当前线程ID, )
返回 (局_返回值)


  
子程序名返回值类型公开备 注
窗口_置顶逻辑型 设置窗口在最顶端,成功返回真,失败返回假
参数名类 型参考可空数组备 注
窗口句柄整数型欲设置的窗口句柄
返回 (BringWindowToTop (窗口句柄))

   4 函数原型:HWND SetActiveWindow(HWND hWnd);



参数:

hWnd:将被激活的最顶层窗口。

返回值:若 函数调用成功,则返回原先活动窗口的句柄。若 函数调用失败,则返回值为NULL。若要获得更多 错误信息,可以调用GetLastError函数。

备注:SetActiveWindow函数激活一个窗口,但当应用程序处于后台时,将不激活指定窗口。当应用程序激活窗口时处于前台,则窗口将被放到前台。

若hWnd参数指定的窗口是被调用线程创建的,调用线程的 活动窗口的状态将被设置到hWnd中。否则,调用线程的 活动窗口的状态被设为NULL。

从另一方面讲,SetForegroundWindow 窗口函数激活一个窗口并将其强制为前台的。当应用程序要显示关键错误或需要用户立即注意的信息时,应只能调用SetForegroundWindow函数。

使用 AttachThreadInput函数可将一个线程的输入处理连接到其他线程。这使得调用SetActiveWindow函数的 线程可以激活与其他线程消息队列相关的窗口。

速查:Windows NT:3.1及以上版本;Window

5 函数原型:B00L BringWindowToTop(HWND hWnd);

函数功能:该函数将指定的窗口设置到Z序的顶部。如果窗口为顶层窗口,则该窗口被激活;如果窗口为子窗口,则相应的顶级父窗口被激活。

参数:

hWnd: 设置到Z序的顶部的 窗口句柄

返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多 错误信息,请调用GetLastError函数。

备注:使用BringWindowToTop函数显示出被其他窗口部分或全部遮盖的窗口。

调用这个函数类似于调用SetWindowPos函数来改变窗口在Z序中的位置,但是BringWindowToTop函数并不能使一个窗口成为前台窗口。

如果应用程序不在前台中而想设置在前台中,可以调用SetForegroundWindow函数。

这个函数也许能随同子窗口使用。函数对一个特定的输入线程来说是“本地的”——换言之,倘若某窗口并非前台应用程序的一部分,那么一旦随同该窗口调用本函数,仍会将窗口带至它自己那个应用程序的窗口列表顶部。但是,不会同时使那个应用成为前台应用程序。这意味着在调用了本函数后,窗口仍会保持隐藏状态

6 还是没搞清楚区别在哪里,看来一般情况用置顶吧,?


签到天数: 4 天

发表于 2023-7-16 13:03:49 | 显示全部楼层   江苏省连云港市
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表