一----使用Window API 获取句柄
GetNextWindow
获取前一个或者后一个窗口的句柄
HWND GetNextWindow(
HWND hWnd,
UINT wCmd
);
GetWindow
该函数返回与指定窗口有特定关系(如Z序或所有者)的窗口句柄
HWND GetWindow(
HWND hWnd,
UINT uCmd
);
GetNextDlgTabItem:与 TAB键相关
该函数按指定方向检索对话框中有WS_TABSTOP类型的第一个控件的句柄
HWND GetNextDlgTabItem(
HWND hDlg,
HWND hCtl,
BOOL bPrevious
);
二----在CWnd中:
1、要找到某个CWnd对象的句柄,用GetSafeHwnd()。
HWND GetSafeHwnd( ) const; // 得到的是成员m_hWnd
2、在窗口类中,有句柄的成员变量,可以直接访问: m_hWnd
3、在窗口类外,可以用AfxGetMainWnd()->m_hWnd获得。
CWnd* AFXAPI AfxGetMainWnd( ); // 获取窗口类的指针
三----在MainFrame中
1、接用 this;
2、 其它地方用 CWinThread::m_pMainWnd
CMainFrame* pMainFrame = (CMainFrame*)theApp.m_pMainWnd;
CWnd* m_pMainWnd;
四----获得到一个控件的的句柄
GetDlgItem(ID)->m_hWnd
五----得到视图的句柄
AfxGetMainWnd()->GetActiveView();
六----SDI:
((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView();
七----MDI:
((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveFrame()->GetActiveView();