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 ") )

转载于:https://www.cnblogs.com/mfrbuaa/p/3839822.html

VC中获取窗体句柄的各种方法相关推荐

  1. VC浏览器相关的学习(四)(在BHO中获取IE版本以及获取窗体句柄)

    值得注意的是IE6,IE7,IE8的窗体组织完全不一样,需要用VS自带的工具Spy++查看确定 a 获取IE版本 int CMyRock::GetIEVersion() { CComPtr<ID ...

  2. JCEF3——谷歌浏览器内核Java版实现(一):使用jawt获取窗体句柄

    前言 最近一段时间研究谷歌浏览器内核.谷歌浏览器内核一直开源,并维护更新,它的开源项目中内核更新速度和Chrome浏览器版本更新进度一样!而且它不同于WebKit(值得一题的是谷歌浏览器已不使用Web ...

  3. c 语言 多进程,VC++中进程与多进程管理的方法详解

    本文实例讲述了VC++中进程与多进程管理的方法,分享给大家供大家参考.具体方法分析如下: 摘要: 本文主要介绍了多任务管理中的多进程管理技术,对进程的互斥运行.子进程的创建与结束等作了较详细的阐述. ...

  4. VC++中进程与多进程管理的方法[转]

    VC++中进程与多进程管理的方法      关键词: VC++6.0:进程:环境变量:子进程 进程 进程是当前操作系统下一个被加载到内存的.正在运行的应用程序的实例.每一个进程都是由内核对象和地址空间 ...

  5. 高级 | Java中获取类名的3种方法

    转载自 高级 | Java中获取类名的3种方法 获取类名的方法 Java 中获取类名的方式主要有以下三种. getName() 返回的是虚拟机里面的class的类名表现形式. getCanonical ...

  6. 在VC中动态加载ODBC的方法

    在VC中动态加载ODBC的方法     在使用VC.VB.Delphi等高级语言编写数据库应用程序时,往往需要用户自己在控制面板中配置ODBC数据源.对于一般用户而言,配置ODBC数据源可能是一件比较 ...

  7. PHP中获取星期的几种方法

    PHP中获取星期的几种方法 PHP星期几获取代码: 1 date(l); 2 //data就可以获取英文的星期比如Sunday 3 date(w); 4 //这个可以获取数字星期比如123,注意0是星 ...

  8. java 窗口鼠标句柄_c#获取窗体句柄模拟鼠标点击

    [实例简介] c#获取窗体句柄模拟鼠标点击实例2012年8月20日23:48:21,代码清楚,有详细注释,希望对大家有用 [实例截图] [核心代码] 获取窗体句柄模拟鼠标点击 └── 获取窗体句柄模拟 ...

  9. Spring 中获取 request 的几种方法,及其线程安全性分析

    概述 在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址.请求的url.header中的属性(如cookie.授权信息).body中的数据等 ...

最新文章

  1. KVM虚拟机安装、管理
  2. word 2007 文档中添加文件
  3. 从编码、网络传输、架构设计揭秘腾讯云高质量、高可用实时音视频技术实践...
  4. 关于Angular @Injectable的几种测试情况
  5. 【Python CheckiO 题解】Correct Sentence
  6. h5 bootstrap 小程序模板_软件测试人员必知H5/小程序测试点
  7. 前置++与后置++之一道简单的题目引发的思考
  8. java1.8输出语句_[【小白学Java——干货】1.初学Java,认识语法、变量与输出语句...
  9. 计算机中丢失api-ms 解决方法
  10. 活动选择问题 贪心
  11. DELL LATITUDE E5510 笔记本电脑屏幕闪烁问题的解决.
  12. 【SPOJ - NSUBSTR】Substring(统计长度为x的子串最多出现的次数--后缀自动机)
  13. 推荐一款开源的电子书格式转换工具
  14. 常见文章、图文素材采集软件优缺点比较分析
  15. 简单的一种图像冷暖色温转换(MATLAB)
  16. azw3文件怎么打开?
  17. 你迷茫的原因在于读书太少而想的太多,迷茫不知所措时,那就多读书吧!年轻是本钱,但不努力就不值钱
  18. 利用nodemcu和mqtt协议让嵌入式设备接入互联网(一.layui前端框架)
  19. PCI8524 并行8Ch24Bits100Ksps高精度数据采集卡
  20. 机器学习算法实践——K-Means算法与图像分割

热门文章

  1. Android 小技巧
  2. Linux下通过设置PS1变量改变bash提示符颜色
  3. CentOS安装rpm包时遇到Header V3 DSA signature: NOKEY时解决办法
  4. 从“学徒”(Apprentice III)看领导力(9-17集)
  5. Dataguru培训优惠码 分享
  6. MYSQL从节点延迟问题原因及解决
  7. Android怎么结束一个进程,我试了用 ActivityManager.killBackgroundProcesses方法去结束,但是没有反应
  8. python文件处理系列(二):Excel文件读取库xlwings
  9. SDNU 1507.E.The Binding of Isaac
  10. SpringMVC-Helloworld 的归纳理解