在MFC中查找HWND

 要找到某个CWnd对象的HWND,用GetSafeHwnd()。

 

在窗口类中,有句柄的成员变量,可以直接访问:   m_hWnd  
  在窗口类外,可以用AfxGetMainWnd()->m_hWnd获得。

 

 在MainFrame里直接用this;  
  其它地方用  
  CMainFrame*   pMainFrame   =   (CMainFrame*)theApp.m_pMainWnd;  

 

想得到一个控件的的句柄

GetDlgItem(ID…)->m_hWnd

 

得到视图的句柄

AfxGetMainWnd()->GetActiveView();

 

SDI:  
  ((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();  
   
  MDI:  
  ((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveFrame()->GetActiveView();  

 

 

 

分类:

GetSafeHandle();
this-> hWnd;
GetDlgItem(hwnd,ID);//获取窗口ID所对应的HWND的子窗口句柄


在主窗口中,如果要用到父窗口的句柄,可以用
HWND   GetParent(HWND   hWnd)       得到
  参数为当前所在子窗口的句柄,函数的返回值就是当前子窗口的父窗口句柄

在父窗口中,如果有子窗口句柄,可以调用 GetWindowLong(hwndChild,GWL_ID)
   参数GWL_ID就是用语获取子窗口的句柄


HWND   FindWindow(
    LPCTSTR   lpClassName,   //   pointer   to   class   name
    LPCTSTR   lpWindowName   //   pointer   to   window   name
);
其中lpClassName是窗口的类名,你可以用spy++来查看其类的名称;lpWindowName是窗口的名称,一般指的是窗口的标题。如果窗口的名称唯一,则窗口的类名可以省略,如:
HWND   hWnd;
hWnd   =   ::FindWindow(NULL,   "你的窗口标题 ");


对象-> GetSafeHwnd();     //控件对象


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值