MFC中獲取指標

2021-04-13 23:30:06 字數 2042 閱讀 1604

獲取工具條的指標

在預設狀態下,有乙個預設的工具條afx_idw_*******,我們可以根據相應的id去獲取工具條指標,方法如下:

c******** p*******=(c********)afxgetmainwnd()->getdescendantwindow(afx_idw_*******);

是不是很簡單?

獲取狀態條的指標

在預設狀態下,有乙個預設的狀態條afx_idw_status_bar,我們自然也可以根據相應的id去獲取狀態條指標,方法如下:

cstatusbar* p*******=(cstatusbar*)afxgetmainwnd()->getdescendantwindow(afx_idw_status_bar);

是不是同樣很簡單?

獲取控制項的指標 

這裡有兩種方法。

一、呼叫cwnd: : getdlgitem,獲取乙個cwnd*指標呼叫成員函式。例如,我們想獲取cbutton指標,方法如下:

cbutton* pbutton=(cbutton*) getdlgitem (idc_mybutton);

二、可以使用classwizard將控制項和成員變數聯絡起來。在classwizard中簡單地選擇member variables標籤,然後選擇add variable …按鈕。如果在對話資源編輯器中,按下ctrl鍵並雙擊控制項即可轉到add member variable對話。

在文件類中呼叫檢視類指標

我們可以利用文件類的成員函式getfirstview()和getnextview()遍歷檢視。

在檢視類中呼叫文件類

其實,在檢視類中有乙個現成的成員函式供我們使用,那就是:getdocument();利用它我們可以很容易的得到文件類指標,我們先看一下getdocument()函式的實現:

ccolorbuttondoc* ccolorbuttonview::getdocument() 

這裡實際上是將m_pdocument強制轉換成ccolorbuttondoc*,也就是我們想要的。

在框架類中呼叫文件類、檢視類

這裡我們可以利用getactive***xx()去掉用當前啟用的文件和檢視:

cmydoc*  pdoc=(cmydoc*)getactivedocument();

cmyview* pview=(cmyview*)getactiveview();

獲得應用程式指標

這個很簡單,一句話搞定:

獲得主框架指標

在類cwinthread裡面有乙個公有的成員變數:cwnd* m_pmainwnd; 它存在的主要目的就是提供我們獲得cwnd指標,我們可以利用它來達到我們的目的:

通過滑鼠獲得子視窗指標

這裡我們要用到乙個不太常用的函式:childwindowfrompoint。他的原型如下:

cwnd* childwindowfrompoint(point point) const;

cwnd* childwindowfrompoint(point point,uint nflags) const;

這個函式用於確定包含指定點的子視窗,如果指定點在客戶區之外,函式返回null;如果指定點在客戶區內,但是不屬於任何乙個子視窗,函式返回該cwnd的指標;如果有多個子視窗包含指定點,則返回第乙個子視窗的指標。不過,這裡還要注意的是:該函式返回的是乙個偽視窗指標,不能將它儲存起來供以後使用。

對於第二個引數nflags有幾個含義:

cwp_all             

[url=file://不/]

file://不

[/url]

忽略任何子視窗

cwp_skipnivsible    

[url=file://忽/]

file://忽

[/url]

略不可見子視窗

cwp_skipdisabled    

[url=file://忽/]

file://忽

[/url]

略禁止的子視窗

cwp_skipransparent  [url=file://忽/]file://忽

[/url]略透明子視窗

mfc指標獲取

1 獲取應用程式指標2 獲取主框架指標或者 cmainframe pmainframe cmainframe afxgetmainwnd 獲取選單指標 cmenu pmenu afxgetmainwnd getmenu 獲取工具欄 狀態列指標 主框架中可以直接使用m wnd m wndstatusb...

MFC中獲取主視窗指標

mfc中 獲取主視窗指標 2010 07 14 14 44 afxgetmainwnd cwnd afxgetmainwnd 返回值 如果伺服器具有乙個可以在容器內現場啟用的物件,並且這個容器是活動的,則這個函式返回乙個指向包含這個現場活動文件的框架視窗物件的指標。如果沒有可以在容器內現場啟用的物件...

MFC中各種指標的獲取

目錄 1 在view中獲得doc指標 3 在view中獲得mainframe指標 4 獲得view 已建立 指標 5 獲得當前文件指標 6 獲得狀態列與工具欄指標 7 獲得狀態列與工具欄變數 8 在mainframe獲得選單指標 9 在任何類中獲得應用程式類 10 從文件類取得檢視類的指標 1 在v...