1. 程式人生 > >多文檔獲取常用窗口的指針方式

多文檔獲取常用窗口的指針方式

main 狀態欄 程序 func tac parent The 應用程序 urn

利用MFC進行多文檔程序開發的時候,靈活運行系統提供的獲取指針方法快速定位到某一個窗體,我個人覺得蠻重要的。
1、GetParent(HWND hWnd);獲取當前窗口是個子窗口,獲取是父窗口的指針,如果是彈出的模態窗口(頂層窗口),獲取的是沒有WS_CHILD屬性的間接父窗口。
MSDN中的解釋如下:
If the window is a child window, the return value is a handle to the parent window. If the window is a top-level window, the return value is a handle to the owner window. If the window is a top-level unowned window or if the function fails, the return value is NULL
2、獲取應用程序的指針
AfxGetApp();
3、獲取主框架的指針
AfxGetMainWnd();
((CMainFrame*)AfxGetApp())->m_pMainWnd;
4、獲取菜單的指針
AfxGetMainWnd()->GetMenu();
5、獲取工具欄、狀態欄的指針
1)主窗口的相應變量
m_wndStatusBar
m_wndToolBar
m_wndRibbonBar //ribbonBar工具欄
2) 函數獲取
AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);
AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_TOOLBAR);
6、 文檔,指圖指針
AfxGetMainWnd()->GetActiveFrame();
AfxGetMainWnd()->GetActiveView(); //如果是多文檔,首先獲取子框架指針,AfxGetMainWnd()->GetActiveFrame()->GetActiveView();
AfxGetMainWnd()->GetActiveDocument();
7、獲取子控件的指針
GetDlgItem(AFX_IDW_PANE_FIRST) //多文檔在主框架中獲取的是主框架建立的一個偽視圖(通過CreateWindow創建的),子框架中獲取的才是真正的視圖

多文檔獲取常用窗口的指針方式