MFC 中獲取各種類指標的方法

2021-05-26 08:14:26 字數 3031 閱讀 4304

獲得各種檢視指標如下

1) 在

view

中獲得doc

指標2) 

在中獲得

mainframe

指標3) 

在view

中獲得mainframe

指標4) 

獲得view

(已建立)指標

5) 獲得當前文件指標

6) 獲得狀態列與工具欄指標

7) 獲得狀態列與工具欄變數

8) 在

mainframe

獲得選單指標

9) 在任何類中獲得應用程式類

10) 

從文件類取得檢視類的指標

(1) 

11) 

在中獲得文件模板指標

12) 

從文件模板獲得文件類指標

13) 

在文件類中獲得文件模板指標

14) 

從文件類取得檢視類的指標

(2) 

15) 

從乙個檢視類取得另一檢視類的指標

16)獲取分割檢視中各個檢視的指標

vc中程式設計對於剛剛開始學習的同學,最大的障礙和問題就是訊息機制和指標獲取與操作。其實這

些內容基本上是每本

vc學習工具書上必講的內容,而且通過

msdn

很多問題都能解決。

下面文字

主要是個人在程式設計中指標使用的一些體會,說的不當的地方請指正。

一般我們使用的框架是vc提

供的wizard

生成的框架,無論是多文件還是單文件,都存在指標獲取和操

作問題。

下面這節內容主要是一般的框架,然後再講多執行緒中的指標使用。使用到的類需要包含

響應的標頭檔案。首先一般獲得本類

(視,文件,對話方塊都支援

)例項指標

this

,用this

的目的,主要

可以通過類中的函式向其他類或者函式中發指標,以便於在非本類中操作和使用本類中的功能。1)

在view

中獲得doc

指標cyousdidoc *pdoc=getdocument();

乙個視只能有乙個文件。

2) 在

中獲得mainframe

指標中的

m_pmainwnd

變數就是

mainframe

的指標也可以:

cmainframe *pmain =(cmainframe *)afxgetmainwnd(); 

3) 在

view

中獲得mainframe

指標獲得

view

(已建立)指標

獲得當前文件指標

cdocument * pcurrentdoc =(cframewnd *)m_pmainwnd->getactivedocument();

6) 獲得狀態列與工具欄指標

cstatusbar * pstatusbar

=(cstatusbar *)afxgetmainwnd()->getdescendantwindow

(afx_idw_status_bar); c******* * p*******=(c******* *)afxgetmainwnd()-

>getdescendantwindow(afx_idw_*******); 

7) 如果框架中加入工具欄和狀態列變數還可以這樣

(cmainframe *)getparent()->m_wnd*******; (cmainframe *)getparent()->m_wndstatusbar; 

8) 在

mainframe

獲得選單指標

cmenu *pmenu=m_pmainwnd->getmenu(); 

9) 在任何類中獲得應用程式類用

mfc全域性函式

獲得。10)

從文件獲得檢視類指標目的一般為了控制同一文件的多個檢視的定位問題,我的體會特別是文

字處理ceditview

當產生多個檢視類時,這個功能是非常需要的。

cdocument

類提供了兩個函式用於檢視類的定位:

getfirstviewposition()

和getnextview()

virtual position getfirstviewposition() const; virtual cview* getnextview

(position& rposition) const;       

注意:getnextview()

括號中的引數用的是引用方式,因

此執行後值可能改變。

getfirstviewposition()

用於返回第乙個檢視位置(返回的並非檢視類指

針,而是乙個

position

型別值),

getnextview()

引用呼叫的方式來改變傳入的

position

型別引數的值。很明顯,在

test

程式中,只有乙個檢視

類,因此只需將這兩個函式呼叫一次即可得到

ctestview

的指標如下(需定義乙個

position

結構變數來輔助操作):

ctestview* ptestview; position pos=getfirstviewposition();

ptestview=getnextview(pos); 

這樣,便可到了

ctestview

類的指標

ptestview.

執行完幾句

後,變數

pos=null,

因為沒有下乙個檢視類,自然也沒有下乙個檢視類的

position.

但是這幾條

語句太簡單,不具有太強的通用性和安全特徵;當象前面說的那樣,當要在多個檢視為中返回某個

指定類的指標時,我們需要遍歷所有檢視類,直到找到指定類為止。判斷乙個類指標指向的是否某

MFC中獲取各種類指標的方法

mfc 中獲取各種類指標的方法 獲得各種檢視指標如下 1 在view 中獲得doc 指標 2 在 中獲得 mainframe 指標 3 在 view 中獲得mainframe 指標 4 獲得 view 已建立 指標 5 獲得當前文件指標 6 獲得狀態列與工具欄指標 7 獲得狀態列與工具欄變數 8 在...

MFC中各種指標的獲取

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

在MFC類中各種類的指標的獲取和應用

注 從檢視類中獲得主幀視窗類指標 用函式 cwnd getparentframe 或afxgetmainwnd 也 可達到目的。getparentframe 的工作原理是在父視窗鏈中搜尋,直到找到cframewnd或其派生類為止,並返回其指標。cmainframe cwnd getparentfra...