应用实例:VC 实现广告窗口自动关闭 (2)
2008-02-23 05:41:21来源:互联网 阅读 ()
//根据句柄获取子窗口指针 CWnd* pChildWnd=CWnd::FromHandle(FindWindowEx(pMainWnd->m_hWnd,NULL,"Worker",NULL)); if(!pChildWnd) pChildWnd=CWnd::FromHandle(FindWindowEx(pMainWnd->m_hWnd,NULL,"WorkerA",NULL)); |
假如子窗口存在,用类似的方法获取下一个子窗口指针:
CWnd* pChildNextWnd=CWnd::FromHandle(FindWindowEx(pMainWnd->m_hWnd,pChildWnd->m_hWnd,"Worker",NULL)); if(!pChildNextWnd) pChildNextWnd=CWnd::FromHandle(FindWindowEx(pMainWnd->m_hWnd,pChildWnd->m_hWnd,"WorkerA",NULL)); |
假如该窗口存在,那么下步只要验证当前窗口可视就能够断定其的确属于广告窗口,能够通过GetWindowLong()获取到当前的窗口风格,然后通过逻辑运算能够判断出当前窗口是否具备WS_VISIBLE可视效果:
if(pChildNextWnd) { if(!(GetWindowLong(pChildWnd->m_hWnd,GWL_STYLE)&WS_VISIBLE)) { pTempWnd=NULL; pTempWnd=pMainWnd; //关闭广告窗口 …… return; } } |
现在已能够准确判断出哪个是广告窗口了,只需将其关闭即可,前段代码已将我们想关闭的窗口指针保存到变量pTempWnd中,因此我们能够通过简单的向其发送WM_CLOSE消息就能够完全将其关闭了:
pTempWnd->PostMessage(WM_CLOSE,0,0); |
三、 小结
本文仅对于关闭广告窗口的核心代码作了介绍,在实际编程中需要考虑到许多实际的因素,比如为了节省屏幕占用空间,最好将其做成系统托盘模式;由于需要长期驻留内存所以要尽量把程式大小控制好,并且采用Release发行版本等等。本文所述内容有一定的通用性,能够将其用于监控某项进程,当该进程启动后由程式来触发某个事件来对其进行处理等等。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: Visual C 中回调函数使用的变身大法 (2)
下一篇: C里面何时出了对结构体赋值的支持的?
- 应用实例:VC 实现广告窗口自动关闭 (1) 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash