溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2020-09-05 04:36:31 來源:網(wǎng)絡(luò) 閱讀:490 作者:tomy000 欄目:編程語言

利用MFC進(jìn)行多文檔程序開發(fā)的時(shí)候,靈活運(yùn)行系統(tǒng)提供的獲取指針方法快速定位到某一個(gè)窗體,我個(gè)人覺得蠻重要的。
1、GetParent(HWND hWnd);獲取當(dāng)前窗口是個(gè)子窗口,獲取是父窗口的指針,如果是彈出的模態(tài)窗口(頂層窗口),獲取的是沒有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、獲取應(yīng)用程序的指針
AfxGetApp();
3、獲取主框架的指針
AfxGetMainWnd();
((CMainFrame*)AfxGetApp())->m_pMainWnd;
4、獲取菜單的指針
AfxGetMainWnd()->GetMenu();
5、獲取工具欄、狀態(tài)欄的指針
1)主窗口的相應(yīng)變量
m_wndStatusBar
m_wndToolBar
m_wndRibbonBar //ribbonBar工具欄
2) 函數(shù)獲取
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) //多文檔在主框架中獲取的是主框架建立的一個(gè)偽視圖(通過CreateWindow創(chuàng)建的),子框架中獲取的才是真正的視圖

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI