- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
… PR0BR^啊LANGUAGE— … … …… 一… … ……一 …一 一………… …一…… 一 … …一…一一…
任意窗口置顶器的设计与实现
李 斌
摘 要 :通过使用 Win32API函数 EnumWindows和 SetWindowPos,达到枚举系统所有窗口,并
使某个窗 口置顶 ,以此设计一个任 意窗 口置顶器。
关键词 :EnumWindows函数 ;SetWindowPos函数 ;窗口置顶
际意义,最后 的参数可通过传人 SWPNOMOVE和swpNOSI
1 背景知识
ZE来表 明此次操作并不改变窗 口的大小及位置而只是设置
Windows操作系统带有一个 “任务管理器”程序 ,利用此 窗 口置顶与否,因此,当需要置顶窗口时,可以使用下面的
程序可 以查看系统中所有正在运行的进程等信息.读者可能注 代码 :
意到 .此程序默认总是 “置顶 ”.这样可方便用户查看信息。 SetWindowPos(窗口旬柄,HW ND_TOPMOST,.1,1,1,1
SW P
所谓 “置顶 ”是指该程序 的主窗 口位于所有其他窗 口层次之 — NOMOVEISWP—NOSIZE);
上 ,这样就做到了凡是该程序窗 口覆盖 的位置 ,其他窗 口都 如果需要取消置顶 ,那么只须调用下面的代码:
无法 “遮挡 ”住其显示 。窗 口置顶具有很大的意义,例如观 SetWindowPos(窗口句柄,HWND—NOTOPMOST..1,1,1,
看视频时就不希望正在后台运行的其他程序遮住播放 的视频 1,SWP_NOMOVEfSWP.NOSIZE);
画面 .某些程序会提供选项让用户决定是否要将窗 21I置顶 , 3 获取任意窗口的窗口旬柄
但并非每个应用程序都 内置此功能,例如广泛应用 的记事本
从上文中可以看到,实现窗体置顶与否的API函数及各项
(Notepad)和计算器 (calc)就没有此功能 ,假设读者正在根
参数基本都 已经获取,如果程序要实现 的是对 自己窗 口的置
据一个 TXT文件 中的数据进行计算 .此时用户可能会从 TXT
顶 ,那么就非常容易,因为取得 自己窗体 的句柄是很容易实现
文件 中复制一些数据贴到计算器 中.但一旦 鼠标点击到记事
的,但 问题是现在 的需求是实现对系统 中存在 的任意窗体置
本程序 中,计算器程序就被覆盖 ,要重新激活其窗31就需要
顶 ,因此上文调用 SetWiindowPos函数要传人 的第一个参数应
到任务栏点击 .如果计算器程序窗口始终置顶 ,那么这项工作
该是系统中任意窗体的句柄,所以问题的关键在于如何获取任
就可能变得容易许多。将介绍一个任意窗 口置顶程序的设计与
意 窗 体 的句 柄 ,这 就 要 使 用 另 一 个 Win32API函数
实现。
EnumWqndows,下面详细分析 。
2 窗口置顶 首先来看 EnumWindows在 MSDN中的原形签名:
事 实上 .窗 13:置顶
文档评论(0)