VC各种情况下的窗口句柄的获取
AfxGetMainWnd 获取自身窗口句柄
HWND hWnd = AfxGetMainWnd()->m_hWnd;
GetTopWindow
函数功能:该函数检查与特定父窗口相联的子窗口z序(Z序:垂直屏幕的方向,即叠放次序),并返回在z序顶部的子窗口的句柄。
函数原型:HWND GetTopWindow(HWND hWnd);
参数:
hWnd:被查序的父窗口的句柄。如果该参数为NULL,函数返回Z序顶部的窗口句柄。
返回值:
如果函数成功,返回值为在Z序顶部的子窗口句柄。如果指定的窗口无子窗口,返回值为NULL。
GetForegroundWindow
函数功能:该函数返回当前系统的前台窗口的窗口句柄。
函数原型:HWND GetForegroundWindow(VOID)
返回值:函数返回前台窗回的句柄。
GetActiveWindow
函数功能:该函数可以获得与调用该方法的线程的消息队列相关的活动窗口的窗口句柄(就是取得当前进程的活动窗口的窗口句柄)。
函数原型:HWND GetActiveWindow(VOID)
返回值:返回值是与调用线程的消息队列相关的活动窗口的句柄。否则,返回值为NULL。
GetSafeHwnd
函数功能:获取某个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数。
通过下面的例子来看其理由:
CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源 管理器
HWND hwnd = pwnd->m_hwnd; //得到它的HWND
这样的代码当开始得到的pwnd为空的时候就会出现一个“General protection error”,并关闭应用程序,因为一般不能对一个NULL指针访问其成员,如果用下面的代码:
CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器
HWND hwnd = pwnd->GetSafeHwnd(); //得到它的HWND
就不会出现 问题,因为尽管当pwnd是NULL时,GetSafeHwnd仍然可以用,只是返回NULL
IsWindowVisible
函数功能:该函数获得给定窗口的可视状态。
函数原型:BOOL IsWindowVisible(HWND hWnd);
参数;
hWnd:被测试窗口的句柄。
返回值:
如果指定的窗口及其父窗口具有WS_VISIBLE风格,返回值为非零;如果指定的窗口及其父窗口不具有WS_VISIBLE风格,返回值为零。由于返回值表明了窗口是否具有Ws_VISIBLE风格,因此,即使该窗口被其他窗口遮盖,函数返回值也为非零。
备注:
窗口的可视状态由WS_VISIBLE位指示。当设置了WS_VISIBLE位,窗口就可显示,而且只要窗口具有WS_VISIBLE风格,任何画在窗口的信息都将被显示。
IsWindow:
函数功能:该函数确定给定的窗口句柄是否标示一个已存在的窗口。
函数原型:BOOL IsWindow(HWND hWnd);
参数:
hWnd:被测试窗口的句柄。
返回值:
如果窗口句柄标识了一个已存在的窗口,返回值为TURE;如果窗口句柄未标识一个已存在窗口,返回值为FALSE。
FindWindow:
HWND FindWindow(LPCSTR lpClassName,LPCSTR lpWindowName );
参数:
lpClassName
指向一个以null结尾的、用来指定类名的字符串或一个可以确定类名字符串的原子。如果这个参数是一个原子,那么它必须是一个在调用此函数前已经通过 GlobalAddAtom函数创建好的全局原子。这个原子(一个16bit的值),必须被放置在lpClassName的低位字节中,lpClassName的高位字节置零。
lpWindowName
指向一个以null结尾的、用来指定窗口名(即窗口标题)的字符串。如果此参数为NULL,则匹配所有窗口名。
返回值:
如果函数执行成功,则返回值是拥有指定窗口类名或窗口名的窗口的句柄。
如果函数执行失败,则返回值为 NULL 。可以通过调用GetLastError函数获得更加详细的错误信息。
SetWindowText:
至于窗口标题的改变,我们可以通过SetWindowText来实现
注:如果窗口本身属性是不显示标题的,这个函数的调用不会影响窗口属性。
//Set title for application’s main frame window .
AfxGetMainWnd ( ) -> SetWindowText (_T("Application title") )
//Set title for View’s MDI child frame window .
GetParentFrame ( ) -> SetWindowText ("_T ("MDI Child Frame new title") )
//Set title for dialog’s push button control.
GetDigitem (IDC_BUTTON) -> SetWindowText (_T ("Button new title ") )
VC各种情况下的窗口句柄的获取相关推荐
- 使用nginx代理的情况下获取用户真实IP
##1.背景知识 1.1. 前提知识点: 还有nginx中的几个变量: remote_addr 代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站 ...
- 无屏幕有线情况下笔记本电脑连接树莓派
无屏幕有线情况下笔记本电脑连接树莓派 获取树莓派ip 使用SSH远程登录树莓派 远程VNC桌面服务访问 首先我们需要将网线接入到树莓派中,如下: 获取树莓派ip 1. 假如有屏幕的话可以通过在树莓派L ...
- 相册权限_苹果手机惊现漏洞?App在未获取相册权限的情况下成功读取照片
近日,知乎上网友爆料发现苹果手机存在漏洞,一款名叫"时间规划局"的App可在未获取相册权限的情况下读取照片.专家猜测可能是App调用了苹果的私有库,绕过了系统的授权机制. 2月26 ...
- python安装包_在python官网打不开的情况下获取获取官方最新安装包
不知道有没有朋友在下载python最新安装包的时候,打不开python官网,我是遇见过,就像我们找东西时一样,需要的时候网站打不开,不需要了秒开,后来小编查阅各种资料,咨询了好几个大佬,终于得知了一个 ...
- android弹出选择usb,android 解决:默认情况下用于该USB设备 自动获取USB操作权限...
很多android 的应用在使用USB设备时,总会遇到一个很烦人的问题. 即每次都会弹出对话框: 每次插入USB设备,都会弹出.每次选上默认情况下使用该USB设备.但总还是会弹出.用户体验很差. 似乎 ...
- 华夏常春藤_我如何在没有常春藤大学学位的情况下从微软,亚马逊和Twitter获取报价
华夏常春藤 This is for those of you out there who are about to start your job search and who may be worri ...
- 如何在没有导入excel的情况下获取excel中的测试数据
如何在没有导入excel的情况下获取excel中的测试数据 Set oExcel = CreateObject("excel.application") '创建excel对象 oE ...
- 【实习小tip】多层dialog弹窗遮罩问题、elementUI的form表单组件的select框在只读的情况下没办法拿到传来的数据、从弹窗子组件获取数据后需要刷新页面
解决elementui多层dialog弹窗遮罩问题 弹窗套娃出现了整个屏幕都是遮罩层的问题,需要鼠标点击一下才能正常. 在弹窗组件代码上加上 append-to-body 就可以了,表示这个弹窗是嵌在 ...
- 如何在不越狱的情况下,获取app中的所有常用文件和文件夹
在不越狱的情况.app只有Documents在配置共享共享的情况下可以被用户看到,其它文件夹用户都不能看到.若系统越狱了,那不是常规的iOS系统了,毕竟很少有人越狱苹果系统.那么想获取其它文件夹就需要 ...
最新文章
- 教你用netstat-实践案例
- 正方形分成16份,将1到16填入其中。让行和列都是从大到小。问一共有多少种方法?...
- Matlab中存储及读取数据
- 0708---oop学习--用户密码管理
- sha1原型 c语言,SHA1算法实现(C语言)
- Ubuntu18.04设置简单密码
- Thrift之代码生成器Compiler原理及源码详细解析2
- iOS Runtime运行机制详解
- python中给文件改名
- 腾达ap设置说明_优科 Ruckus R610 AC1900规格 无线AP 开箱拆解评测
- 欧几里得算法和扩展欧几里得算法
- CyclicBarrier栅栏
- 香港理工大学计算机专业课程,香港理工大学计算机系包括哪些专业
- Error(15) 解决 sshd: no hostkeys available -- exiting.
- 玩转软路由 篇二:软路由中Esxi 7.0 安装教程和避坑指南
- PHP技术与应用基础
- VC6.0 通过ado连接access数据库
- K8S (kubernetes)
- kelvin模型蠕变方程_岩石力学复习资料
- 一些很不错的Linux学习网站推荐!(linux视频教程+论坛和资料)
热门文章
- shell判断IP地址是否合法
- JS判断上传文件类型
- bzoj 4551: [Tjoi2016Heoi2016]树【并查集】
- Ex 2_5 求解递推式..._第三次作业
- python学习笔记(自定义库文件路径)
- 异步提交表单插件jquery.form.min.js的使用实例
- MVVM模式的3种command总结[2]--RelayCommand
- ListView的Columns自适应内部文字
- QQ vs 360的战争之我见
- FPGA Design's Tips