- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
vc获得窗口句柄
vc获得窗口句柄
vvcc获获得得窗窗口口句句柄柄
2008-01-1823:11
1. HWND FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName)
1. HWND FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName)
11.. HHWWNNDDFFiinnddWWiinnddooww((LLPPCCTTSSTTRRllppCCllaassssNNaammee,,LLPPCCTTSSTTRRllppWWiinnddoowwNNaammee))
HWND FindWindowEx(HWND hwndParent,HWND hwndChildAfter,LPCTSTR
lpClassName,LPCTSTR lpWindowName)
2. HWND WindowFromPoint(POINTPoint)
2. HWND WindowFromPoint(POINTPoint)
22.. HHWWNNDDWWiinnddoowwFFrroommPPooiinntt((PPOOIINNTTPPooiinntt))
3. 4
3. 4
33.. 44组语句
BOOL CALLBACKEnumChildProc(HWNDhwnd,LPARAMlParam)
BOOL CALLBACKEnumChildWindows(HWNDhWndParent,WNDENUMPROC
lpEnumFunc,LPARAMlParam)
BOOL CALLBACKEnumWindows(WNDENUMPROClpEnumFunc,LPARAMlParam)
BOOL CALLBACKEnumWindowsProc(HWNDhwnd, LPARAMlParam)
一般用途:
对于第一种,大家都很熟悉,是捕捉句柄的常规武器,FindWindow这两兄弟,可以接
受捕捉对象的类名或者窗口标题之一,作为参数,返回一个HWND。可是对于一般群众,
不一定知道所有的窗口(包括标题栏、按钮等等)的类名啊!——可以简单举例,请问你知
道桌面图标的窗口的类名吗?而对于窗口标题,有可能会出现相同的标题,有两个窗口——
指一个程序的两个进程,这又是个麻烦吧!好了,这个问题先放放,继续下一组。
第二组,通过win32定义的POINT结构(typedef struct tagPOINT { LONG x,LONG y;}
POINT),来获得当前鼠标光标位置的窗口HWND,这是最直观的武器!常规操作如下:
先得到Cursor的POINT(BOOL GetCursorPos(LPPOINT)函数),再用 WindowFromPoint。
这样,我们几乎可以获得任何打开的有窗口的函数的HWND了!然后通过获取类名的win32
api函数(int GetClassName(HWND hWnd, LPTSTR lpClassName,int nMaxCount))得到
类名——这里的lpClassName最好用字符数组地址,nMaxCount就是数组的size 了,同时,
这种方法解决了第一个问题的麻烦!——我可以把鼠标放在任何地方!*^_^*
第三组,这些是用来列举和处理任何窗口的超级武器!通过组合运用EnumWindows
和EnumWindowsProc,EnumChildWindows与EnumChildProc,可以扫描桌面所有窗口并对
之处理!我的理解:(这部分用任务驱动式教学方法——谁让小弟是老师呢!xi xi)任务:得
到所有的窗口的类名。
1:解决办法:
我们会先想到第三组,可以自桌面窗口开始(它是所有窗口的祖先),依次扫描,获取
类名并存之。有点儿像Visual Stdio的Spy++,或者Borland 的WinSight32,具体办法如下:
(bcb中)在主程序中,调用EnumWindows,传入YouEnumProc的函数地址作第一个参
数,别忘了转换成WNDENUMPROC类型。第二参可NULL。
::EnumWindows(reinterpret_castYouEnumProc,NULL);在YouEnumProc函数中,如果第
一参HWND= = NULL,就跳离(return FALSE;),可以结束啦!然后,把类名数组准备好,
得到类名,存之。返回真值,继续下一次扫描。看起来并不复杂,是一种函数递归。但是我
可会解释!面啊!: p
2:解决方法:
简单、直观——自己想出来的,颇得意
您可能关注的文档
最近下载
- 备战2023年高考语文一轮复习考点微专题(新高考地区专用)考向28 诗歌鉴赏之语言(含详解).docx VIP
- 飞机交易平台及飞机拆解项目可行性研究报告.doc
- 视听语言PPT全套教学课件.pptx
- 健康评估-河南大学-中国大学MOOC慕课答案.pdf
- 初中音乐人音版《七年级上册青年友谊圆舞曲》课件_1.ppt
- 基于Java的小区物业管理系统的设计与实现.docx VIP
- 普通话课件(完整版)教学文案.ppt
- 【清风语文精品课件】2021高中语文《静女》优质课一等奖.pptx
- 某区南1#矿石泊位升级10万吨级散货泊位工程环境影响报告书.pdf
- 2024高中语文教师课程标准考试模拟试卷及参考答案.docx VIP
文档评论(0)