VC各种方法获得的窗口句柄
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 ") )
VC各种方法获得的窗口句柄的更多相关文章
- VC调试方法大全
VC调试方法大全 一.调试基础 调试快捷键 F5: 开始调试 Shift+F5: 停止调试 F10: 调试到下一句,这里是单步跟踪 F11: 调试到下一句,跟进函数内部 Shift+F11: ...
- VC 各种情况下的窗口句柄的获取
动窗口的句柄.否则,返回值为NULL. GetSafeHwnd 函数功能:获取某个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数. 通过下面的 ...
- VC DLL方法的__declspec导入导出
https://msdn.microsoft.com/zh-cn/library/a90k134d.aspx https://msdn.microsoft.com/zh-cn/library/ms23 ...
- VC++ Post 方法 上传数据到web服务器
最近在做一个项目,需要与WEB服务器交互一些信息.其中一项就是文件的上传与下载.现来一个上传的代码 #include "stdio.h" #include "WinSoc ...
- VC调用易语言DLL
易语言方面: .版本 .子程序 show, , 公开 ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中. ***注意不 ...
- 【转】VC自定义消息
MFC一般可利用ClassWizard类向导添加消息和消息处理函数,但用户自定义消息必须手工输入,现将vc自定义消息方法步骤记录如下: (1)定义消息 利用#define语句直接定义用户自己的消息(既 ...
- skin++ 终极破解之法
*[标题]:Skin++通用界面换肤系统V2.0.1破解探讨 *[作者]:gz1X <gz1x(at)tom(dot)com> *[来自]:中国黑客联盟 *[前言]: skin技术,大家都 ...
- 非常漂亮滴皮肤skin++ 终极破解之法
破解includeparametershook汇编windows *[标题]:Skin++通用界面换肤系统V2.0.1破解探讨 *[作者]:gz1X <gz1x(at)tom(dot)com&g ...
- C# 注册 Windows 热键
闲扯: 前几日,一个朋友问我如何实现按 F1 键实现粘贴(Ctrl+V)功能,百度了一个方法,发给他,他看不懂(已经是 Boss 的曾经的码农),我就做了个Demo给他参考.今日得空,将 Demo 整 ...
随机推荐
- c#中的属性
在C#中我们可以很自由的访问共有字段,但有时我们可能需要某字段只能读或者写,或在改变字段值得时候做一些其他事情,显然这些仅仅依靠字段是无法实现的,于是便有了属性. 1.基本用法 c#中的属性由属性作用 ...
- 为什么OC语言很难
作为一个Objective-C的coder,我总能听到一部分人在这门语言上抱怨有很多问题.他们总在想快速学习这门语言来写一个App出来,但他们也总是联想到Objective-C看上去实在太难了或者在想 ...
- MyEclipse—怎样在MyEclipse中创建servlet3.0
servlet3.0随着Java EE6规范一起公布,那么怎样在MyEclipse中创建3.0版的servlet呢? 1.启动MyEclipse.获得下图: 2.点击上图"File" ...
- 百度云BAE3.0 的ssh构造(本机ssh项目迁移到BAE3.0)
依据百度云的java部署文档进行部署 http://developer.baidu.com/wiki/index.php?title=docs/cplat/bae/java 做例如以下改动,然后把项目 ...
- STL中间set具体用法!!!!
1.关于set C++ STL 之所以得到广泛的赞誉,也被非常多人使用.不仅仅是提供了像vector, string, list等方便的容器,更重要的是STL封装了很多复杂的数据结构算法和大量经常使用 ...
- Code Forces 448C Painting Fence 贪婪的递归
略有上升称号,最近有很多问题,弥补啊,各类竞赛滥用,来不及做出了所有的冠军.这个话题 这是一个长期记忆的主题.这是不是太困难,基本技能更灵活的测试,每次我们来看看这个问题可以被删除,处理然后分段层,贪 ...
- 微服务API Gateway
翻译-微服务API Gateway 原文地址:http://microservices.io/patterns/apigateway.html,以下是使用google翻译对原文的翻译. 让我们想象一下 ...
- 第一章 工欲善其事 其利润—Android SDK工具(2)
1.2设备管理工具-调试桥(ADB) 1.2.1ADB简单介绍 ADB全称是Android Debug Bridge,是Android SDK里自带的一个工具,用这个工具能够直接操作管理Android ...
- Linux磁盘分区,目录树,文件系统的关系(转)
研究了很久,自始至终不能够从三者的区别和联系中找到一个大脑与这些概念之间合适的相处方式.对于基本概念和理论理解不到位,在工作之中会走很多弯路和犯很多错误.今天花一天的时间,终于对三者的区别和联系有了更 ...
- iOS开发- 隐藏状态栏(电池栏)
分为两种情况: 1. 想要隐藏某个视图的状态栏, 比方说, 从界面A, push 到界面B的时候, 界面A原本显示状态栏, 然而我们须要界面B不显示状态栏. 这时候, 能够这样做: 在B中实现: - ...