c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法
AfxGetMainWnd
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 ") )
c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法相关推荐
- java 获取子类实际的类型名_Java 泛型类 以及 泛型类获取子类的具体参数类型 以及 获取子类型具体参数的实例...
前言: 要点都在代码注释中 1.泛型类 GenericInterface package com.demo.generic; import java.lang.reflect.Parameterize ...
- linux java 获取路径怎么写_linux中java获取路径的实例代码
linux中java获取路径怎么写? 在Unix/Linux中,路径的分隔采用正斜"/",比如"cd /home/java". 在java的代码开发中 \ 是代 ...
- linux java 获取路径怎么写_linux中java获取路径怎么写?
linux中java获取路径怎么写? 在Unix/Linux中,路径的分隔采用正斜"/",比如"cd /home/java". 在java的代码开发中 是代表转 ...
- vue获取input的属性_Vue中自动获取input焦点
1.给input属性添加autofocus属性,缺点autofocus 在移动版 Safari 上不工作 2.Vue官网给出的解决办法 // 注册一个全局自定义指令 `v-focus` Vue.dir ...
- linux source 命令位置,linux中source命令的使用方法
linux中source命令的使用方法 发布时间:2021-05-08 12:29:18 来源:亿速云 阅读:77 作者:小新 这篇文章主要介绍linux中source命令的使用方法,文中介绍的非常详 ...
- cesium 获取圆形边界位置_WebGL 中的顶点数据压缩
之前我们介绍了点聚合图的绘制方案:潘与其:使用 k-d tree 实现点聚合图zhuanlan.zhihu.com 对于每个圆形我们使用了如下的顶点数据: attribute vec2 a_pos; ...
- java 分部类_C#中分部类和分部方法的应用
分部类(Partial Class)在C#2.0引入,分部方法(Partial Method)在C#3.0引入,这两个语法特性都具有相同的特性:将类(或)方法的代码分散在多个地方. 1.分部类的特性和 ...
- jq获取对象的长度_jquery中怎么获取数组的长度
jquery中获取数组长度的方法:可以使用length属性获取数组的长度,length属性包含jQuery对象中元素的数目,属性语法为[$(selector).length]. 本教程操作环境:win ...
- c语言自动获取系统时间,C语言中如何获取系统时间?
1 使用time_t time( time_t * timer ) 精确到秒 函数名: time 头文件:time.h 函数原型:time_t time(time_t * timer) 功能: 获取当 ...
- android 获取图片bitmap对象,Android中Glide获取图片Path、Bitmap用法详解
脚本之家在此之前给大家介绍过图片加载框架Glide的基本用法介绍,大家可以先参考一下,本篇内容更加深入的分析了Glide获取图片Path.Bitmap用法,以及实现的代码分析. 1. 获取Bitmap ...
最新文章
- 关于字符串计算size的方法比较
- python opencv 凸包
- Servlet--06--解决乱码问题; 请求转发; 重定向;
- 12. javacript高级程序设计-DOM2和DOM3
- 项目管理过程标准及绩效考核
- MATLAB系统辨识
- 表单进阶 单选框 多选框
- 基于熵权法评估某高校各班级整体情况(公式详解+简单工具介绍)
- NXP JN5169使用UART发送数据
- iOS 屏幕适配 X XR XS XSMax 尺寸
- 制作QQ微信支付宝三合一收款码
- 40个经典的社交心理学现象
- Adversarial Personalized Ranking for Recommendation(个人笔记)
- matlab 精品课程,同济大学经济与管理学院精品课程
- 计算机网络——各层次网络互联设备
- 2019 小米校招笔试题 小米大礼包
- 斜率、弧度、角度的转换
- i++和++i的区别
- 12套高大上的后台管理系统模板,总有一套适合你
- 除去虚拟目录中的旧版本文件(临时文件下载、归档文件下载)
热门文章
- 训练集和测试集 — 模型评估
- ssm基于android的个人健康打卡系统APP-计算机毕业设计
- 学习FLTK 使用Fl_Menu_Bar
- Altium Designer,打开PCB文件,提示:File type not recognised
- SCM供应链管理的背景及意义
- uni-app开发环境搭建创建uni-app项目
- python pymysql 下载_Python PyMySQL模块下载和安装
- 家长进课堂 计算机ppt,家长进课堂之中华传统美德 成品ppt 三井小学一10班出品.ppt...
- Visual Studio 2008破解激活升级方法
- 利用Aspose.PDF for .NET实现pdf转word