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各种方法获得的窗口句柄的更多相关文章

  1. VC调试方法大全

    VC调试方法大全 一.调试基础 调试快捷键 F5:  开始调试 Shift+F5: 停止调试 F10:   调试到下一句,这里是单步跟踪 F11:   调试到下一句,跟进函数内部 Shift+F11: ...

  2. VC 各种情况下的窗口句柄的获取

    动窗口的句柄.否则,返回值为NULL. GetSafeHwnd 函数功能:获取某个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数. 通过下面的 ...

  3. VC DLL方法的__declspec导入导出

    https://msdn.microsoft.com/zh-cn/library/a90k134d.aspx https://msdn.microsoft.com/zh-cn/library/ms23 ...

  4. VC++ Post 方法 上传数据到web服务器

    最近在做一个项目,需要与WEB服务器交互一些信息.其中一项就是文件的上传与下载.现来一个上传的代码 #include "stdio.h" #include "WinSoc ...

  5. VC调用易语言DLL

    易语言方面: .版本 .子程序 show, , 公开 ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中. ***注意不 ...

  6. 【转】VC自定义消息

    MFC一般可利用ClassWizard类向导添加消息和消息处理函数,但用户自定义消息必须手工输入,现将vc自定义消息方法步骤记录如下: (1)定义消息 利用#define语句直接定义用户自己的消息(既 ...

  7. skin++ 终极破解之法

    *[标题]:Skin++通用界面换肤系统V2.0.1破解探讨 *[作者]:gz1X <gz1x(at)tom(dot)com> *[来自]:中国黑客联盟 *[前言]: skin技术,大家都 ...

  8. 非常漂亮滴皮肤skin++ 终极破解之法

    破解includeparametershook汇编windows *[标题]:Skin++通用界面换肤系统V2.0.1破解探讨 *[作者]:gz1X <gz1x(at)tom(dot)com&g ...

  9. C# 注册 Windows 热键

    闲扯: 前几日,一个朋友问我如何实现按 F1 键实现粘贴(Ctrl+V)功能,百度了一个方法,发给他,他看不懂(已经是 Boss 的曾经的码农),我就做了个Demo给他参考.今日得空,将 Demo 整 ...

随机推荐

  1. nginx lua redis 访问频率限制(转)

    1. 需求分析 Nginx来处理访问控制的方法有多种,实现的效果也有多种,访问IP段,访问内容限制,访问频率限制等. 用Nginx+Lua+Redis来做访问限制主要是考虑到高并发环境下快速访问控制的 ...

  2. 安装github for windows问题解决

    到官网下载windows环境下的github,在安装时出现下面问题 An error occurred trying to download 'http://github-windows.s3.ama ...

  3. javascript动画中的“帧”

    在写游戏的时候,动画移动的速度需要保持一致,为了在各个软硬件环境中速度的一致,需要考虑帧频的不同. 计算时间系数: 时间系数 = 目标FPS / 实际FPS 计算实际FPS actualFPS = 1 ...

  4. UVA 11992 - Fast Matrix Operations(段树)

    UVA 11992 - Fast Matrix Operations 题目链接 题意:给定一个矩阵,3种操作,在一个矩阵中加入值a,设置值a.查询和 思路:因为最多20列,所以全然能够当作20个线段树 ...

  5. hdu 1575 Tr A(矩阵高速电源输入)

    Tr A Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  6. [DEEP LEARNING An MIT Press book in preparation]Deep Learning for AI

    动人的DL我们有六个月的时间,积累了一定的经验,实验,也DL有了一些自己的想法和理解.曾经想扩大和加深DL相关方面的一些知识. 然后看到了一个MIT按有关的对出版物DL图书http://www.iro ...

  7. Memcahce(MC)系列(三)Memcached它PHP转让

    由PHP转让Memcahce,首先,需要在server安装Memcache,如何安装Memcache这不是本文的重点, 大约memcache安装,谁的朋友有兴趣,请参阅这里:http://blog.c ...

  8. httpclient 文件上传

    /**      * 上传文件      */     public static Boolean  uploadFile(String fileName, String url) {         ...

  9. Java-如何去掉JFrame上的最大化最小化和关闭按钮(转)

    在JDK1.4以前,我们只有一种方式来去掉窗口的标题栏,那就是直接使用JWindow,用JWindow来代替JFrame使用.但用过JWindow的人一定知道,JWindow在操作系统的任务栏是不可见 ...

  10. 命令模式 & 策略模式 & 模板方法

    一.策略模式 策略模式:封装易变化的算法,可互相替换. GoF<设计模式>中说道:定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换.该模式使得算法可独立于它们的客户变化. 比如 ...