MFC 获得窗口句柄问题大全

本文详细介绍了在MFC中如何获取不同类别的窗口句柄,包括应用程序类、视图类、文档类和框架类。同时,还列举了如GetApp、GetMainWnd、GetActiveWindow等关键函数的使用方法,以及获取菜单、工具栏和状态栏句柄的技巧。此外,还讲解了如何从文档获取视图,以及IsWindowVisible、IsWindow等函数用于检查窗口状态。
摘要由CSDN通过智能技术生成

MFC中获取常见类句柄<视图类,文档类,框架类,应用程序类>

 

本节为VC中常用的文档类,视图类,框架类,应用程序类,自定义类中获取其它四个类的方法: 
GETApp 
  AfxGetInstanceHandle() 
  AfxGetApp() 
GETFrame->View->Document 
   SDI   AfxGetMainWnd() ->GetActiveView() ->GetDocument() 
   MDI   AfxGetMainWnd() ->MDIGetActive() -> GetActiveView() ->GetDocument() 
GETMenu 
    CMenu*pMenu=AfxGetApp()->m_pMainWnd->GetMenu(); 
GETToolBar,StatusBar 
     (CMainFrame*)GetParent()->m_wndToolBar; 
     (CMainFrame*)GetParent()->m_wndStatusBar; 
     CStatusBar *pStatusBa=(CStatusBar*)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR); 
     CToolBar *pToolBar=(CtoolBar*)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_TOOLBAR); 
GetView from Document 
     GetFirstViewPosition 和GetNextView 函数得到指针。 



 



MFC中获取窗口句柄及相关函数 

首先,窗口句柄,在窗口类中直接使用成员变量m_hWnd,在窗口外最常见是用AfxGetMainWnd (获取主窗口指针,其成员变量m_hWnd为主窗口句柄):

 

HWND hWnd =AfxGetMainWnd()->m_hWnd;


与其相关的函数说明如下,这些函数对于获取窗口句柄非常有用:

GetTopWindow
函数功能:该函数检查与特定父窗口相联的子窗口z序(Z序:垂直屏幕的方向,即叠放次序),并返回在z序顶部的子窗口的句柄。
函数原型:HWND GetTopWindow(HWNDhWnd);
参数:
  hWnd:被查序的父窗口的句柄。如果该参数为NULL,函数返回Z序顶部的窗口句柄。
返回值:
  如果函数成功,返回值为在Z序顶部的子窗口句柄。如果指定的窗口无子窗口,返回值为NULL。


GetForegroundWindow
函数功能:该函数返回当前系统的前台窗口的窗口句柄。
函数原型:HWNDGetForegroundWindow(VOID)  
返回值:函数返回前台窗回的句柄。


☆☆  GetActiveWindow    获取当前窗口句柄

函数功能:该函数可以获得与调用该方法的线程的消息队列相关的活动窗口的窗口句柄(就是取得当前进程的活动窗口的窗口句柄)。
函数原型:HWNDGetActiveWindow(VOID)
返回值:返回值是与调用线程的消息队列相关的活动窗口的句柄。否则,返回值为NULL。



GetSafeHwnd
函数功能:获取某个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数。
通过下面的例子来看其理由:
  CWnd *pwnd =FindWindow(“ExploreWClass”,NULL);//希望找到资源管理器

[cpp]  viewplain copy
  1. CWnd *pwnd FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值