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中获取窗体句柄的各种方法的更多相关文章
- JCEF3——谷歌浏览器内核Java版实现(一):使用jawt获取窗体句柄
前言 最近一段时间研究谷歌浏览器内核.谷歌浏览器内核一直开源,并维护更新,它的开源项目中内核更新速度和Chrome浏览器版本更新进度一样!而且它不同于WebKit(值得一题的是谷歌浏览器已不使用Web ...
- C#winform窗体如何通过windowApi的FindWindow函数获取窗体句柄
在同一个程序里,传统方式是通过this来设置当前窗体的最大化.最小化等操作, 那么怎样通过窗体句柄来设置窗体的最大化.最小化呢? 1.界面布局 通过this设置窗体最大化: name:btnWindo ...
- PHP中获取星期的几种方法
PHP中获取星期的几种方法 PHP星期几获取代码: 1 date(l); 2 //data就可以获取英文的星期比如Sunday 3 date(w); 4 //这个可以获取数字星期比如123,注意0 ...
- java中获取日期和时间的方法总结
1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下: 要使用 java.util.Date .获取当前时间的代码如下 Date date = new Date(); da ...
- PHP获取http头信息和CI中获取HTTP头信息的方法
CI中获取HTTP头信息的方法: $this->input->request_headers() 在不支持apache_request_headers()的非Apache环境非常有用.返回 ...
- jquery中获取iframe的id的方法:
jquery中获取iframe的id的方法: var frameId = window.frameElement && window.frameElement.id || ''; al ...
- URL转Drawable之 Android中获取网络图片的三种方法
转载自: http://doinone.iteye.com/blog/1074283 Android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Applicatio ...
- javascript中获取非行间样式的方法
我们都知道一般在javascript中获取样式一般用的是nodeObj.style.attr这个属性的,但是这个属性只能获取行间样式非行间样式比如写在样式表中的样式那么用nodeObj.style.a ...
- VC中添加web控件的方法
在VC中使用WebBrowser控件的两方法 黄森堂(vcmfc)著 ClassWizard方式: 1.创建包装类:View->ClassWizard->Add Class->For ...
随机推荐
- javascript的族家族史
JavaScript 实现 完整的 JavaScript 实现是由以下 3 个不同部分组成的:ECMAScript.文档对象模型.浏览器对象模型.这也就是说 cocos2d-js 中 其实我们用的是 ...
- [topcoder]BusinessTasks
水题,不值一提.http://community.topcoder.com/stat?c=problem_statement&pm=1585&rd=6535 import java.u ...
- Apache CXF 例子
来自:http://www.cnblogs.com/frankliiu-java/articles/1641949.html Apache CXF 是一个开放源代码框架,是在Xfire 跟Celtix ...
- bzoj2282
到路径的距离就是到路径上的点最近的距离首先看到最大值最小不难想到二分答案下面的问题就是怎么判断,显然我们是不能穷举路径的我们要找出消防路径的性质仔细研究就会发现消防路径一定是树的直径的一段,这样必然最 ...
- poj2079
根据凸包的单峰性质,穷举第一个顶点然后先更新第三个顶点,再更新第二个顶点 ..] of longint; ans,n,t,k,i,j:longint; function cross(i,j,k:lon ...
- poj2723
把每对钥匙看做一个变量,那两个钥匙看做他的两个状态 每一个开门的要求就是一个条件(xi or xj) 很显然有了2sat的基本要素 2sat是一个判定性问题,而这题求最多能过几个门: 不难想到二分答案 ...
- 【转】【iOS知识学习】_视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
原文网址:http://blog.csdn.net/weasleyqi/article/details/8090373 iOS视图控制对象生命周期-init.viewDidLoad.viewWillA ...
- ashx文件结合ajax使用(返回json数据)
ashx文件返回json数据: public void ProcessRequest(HttpContext context) { context.Response.ContentType = &qu ...
- 速冻熟食制品的QS的申请办法
QS审核流程许可证申办程序食品生产加工企业按照下列程序申请获得食品生产许可证:1.食品生产加工企业按照地域管辖和分级管理的原则,到所在地的市(地)级以上质量技术监督部门提出办理食品生产许可证的申请:2 ...
- HDU 2647
思路:拓扑排序 #include<stdio.h> #include<string.h> typedef struct { int to; int next; }EdgeNod ...