MFC中,经常会用到窗口句柄和指针,现将经常用到的几种窗口句柄、指针总结如下:
要找到某个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();
获取View类指针:
CGISDemoView * pView = (CGISDemoView *)(((CMainFrame *)AfxGetMainWnd())->GetActiveView());
MDI:
((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveFrame()->GetActiveView();