日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

VC++的应用程序框架中各类之间的访问方法

發布時間:2025/3/21 c/c++ 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VC++的应用程序框架中各类之间的访问方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Visual C++ 6.0開發環境中,我們可以用MFC AppWizard 自動生成一個應用程序
????????????????? 。其中包括了應用類,主邊框窗口類,子邊框窗口類(MDI 應用程序),文檔類
????????????????? 和視 圖類。另外,系統還自動生成了一個文檔模板類對象,它把文檔類,文檔邊
????????????????? 框窗口類(SDI 中的主邊框窗口類或MDI 中的子邊框窗口類),視圖類聯系在一
????????????????? 起,組成一個有機的整體。

???????????????????? 在一些專業教材書中,雖然提到了它們之間的關系,但都沒有全面系統地予
????????????????? 以介 紹。使得初學 VC 的朋友在各類對象之間相互訪問時感到非常困難。筆者經
????????????????? 過一段時間 的總結,現將各類對象之間的關系以及相互之間訪問的方法介紹如下:

???????????????????? 1。應用類對象 :
????????????????????   應用類對象由應用框架自動生成。雖然在應用類的 cpp 文件中有一個應
????????????????? 用類對象的聲明語句,但該對象卻無法使用。用戶可以通過 CWinApp *
????????????????? AfxGetApp() 全局函數得到指向應用類對象的指針,由于該函數返回值為
????????????????? CWinApp * 類型,因此需要進行轉換。
?
???????????????????? 用法如下:
???????????????????????? 假設您的應用類名為:CExampleApp。
???????????????????????? CExamlpleApp * p=(CExamlpleApp *)AfxGetApp();
???????????????????????? p 即為指向應用類對象的指針。

???????????????????? 2。主邊框窗口類(CMainFrame):
????????????????????   主邊框窗口類對象的生成較為復雜,對于 MDI 應用程序,主邊框窗口類對象由應
????????????????? 用類對象在它的 InitInstance()函數中構造生成;對于 SDI 應用程序,主邊框窗口類
????????????????? 對象由文檔模板類構造生成。
???????????????????? 用戶可以用下列方式獲得指向主邊框窗口類對象的指針:
??????????????????????? (1).利用全局函數 AfxGetMainWnd().
??????????????????????? (2).通過應用類的 GetMainWnd() 成員函數或 m_pMainWnd 成員變量。
??????????????????????? (3).對于 MDI 應用程序,還可以通過子邊框窗口類的 GetMIDFrame()成員函數
????????????????? 得到。
???????????????????? 同理,以上各函數的返回值也是 CFrameWnd * 類型( SDI 應用程序)或
????????????????? CMDIFrameWnd * 類型( MDI 應用程序),仍需要轉換成 CMainFrame * 類型。
???????????????????

????????????????? 注:以下各函數的返回值均需要轉換成相應類的指針類型。下面不再敖述。


?????????????????  ? 3. 文檔模板類:
???????????????????? 文檔模板類對象由應用對象在 InitInstance()函數中構造生成。它分為:單文檔
????????????????? 模板類(CSingleDocTemplate)和多文檔模板類(CMultiDocTemplate),分別對應 SDI應
????????????????? 用程序和 MDI應用程序。二者均由CDocTemplate派生。文檔模板類把文檔類,文檔邊框
????????????????? 窗口類(SDI 中的主邊框窗口類或MDI 中的子邊框窗口類),視圖類聯系為一個有機的
????????????????? 整體。應用類對象通常只生成一個文檔模板類對象 ,不過用戶可以自己生成多個文檔模
????????????????? 板類對象,從而使SDI 也可以打開多個文檔,具有了MDI的特征.所有的文檔模板類對象組
????????????????? 成了一個鏈表,應用類的m_pDocManger 成員變量指向該鏈表。
???????????????????? 用戶可以通過應用類的成員函數 GetFirstDocTemplatePosition()和
????????????????? GetNextDocTemplate(POSITION & pos)來訪問該鏈表:
???????????????????????????? POSITION pos;
???????????????????????????? pos=GetFirstDocTemplatePosition();
???????????????????????????? CDocTemplate * pDocTemplate;
???????????????????????????? pDocTemplate=GetNextDocTemplate(pos);
?????????????????????? pDocTemplate 即是指向第一個文檔模板類對象的指針,用戶還可以繼續調用
????????????????? GetNextTemplate()得到下一個文檔模板類對象.
???????????????????? 4。子邊框窗口類(CChildFrame):
???????????????????? 子邊框窗口類是專門針對 MDI 應用程序而言的,它由文檔模板類構造生成。對它
????????????????? 的訪問可用以下方式實現:
???????????????????? 通過主邊框窗口類的 CFrameWnd * GetActiveFrame() 得到指向該對象的指針。
???????????????????? 5.文檔類:
????????????????????? 文檔類對象由文檔模板類構造生成。單文檔模板類只能生成一個文檔類對象,并
????????????????? 用成員變量 m_pOnlyDoc 指向該對象。多文檔模板類可以生成多個文檔類對象,另用成
????????????????? 員變量 m_docList 指向文檔對象組成的鏈表。在 SDI 應用程序中,當我們生成多個單
????????????????? 文檔模板類對象時,就可以打開多個文檔。
????????????????????? 用戶可以通過多文檔模板類對象的成員函數 GetFirstDocPosition() 和
????????????????? GetNextDoc(POSITION &pos) 來訪問文檔對象組成的鏈表:
???????????????????????????? POSITION pos;
???????????????????????????? pos=GetFirstDocPosition();
???????????????????????????? CDocument *pDoc;
???????????????????????????? pDoc=GetNextDoc(pos);
?????????????????????? 另外,文檔類還可以通過其成員函數 CDocTemplate * GetDocTemplate() 返過來
????????????????? 訪問文檔模板類對象.
???????????????????? 對于當前活動的文檔類對象,我們還可以通過以下方式訪問:
???????????????????? (1).通過子邊框窗口(MDI 應用程序)或主邊框窗口(SDI 應用程序)的成員函數
????????????????? CDocument * GetActiveDocument() 可以得到指向該文檔的指針.
???????????????????? (2).另外視圖類的成員函數 CDocument * GetDocument()以及成員變量
????????????????? m_pDocument 也可以得到指向該文檔的指針.

????????????????????? 6.視圖類:
??????????????????? 視圖類對象是由主邊框窗口(SDI 應用程序)或子邊框窗口(MDI 應用程序)構造生成
????????????????? 的.因此它的訪問方式有以下兩種:
???????????????????? (1).對于當前活動的視圖類對象可以由主邊框窗口(SDI 應用程序)或子邊框窗口
????????????????? (MDI 應用程序)的成員函數 CView * GetAcitveView() 來得到該對象的指針.
???????????????????? (2).另外,還可以通過文檔類的成員函數 GetFirstViewPosition() 和
????????????????? CView * GetNextView() 來訪問所有的視圖類對象。
???????????????????? 其用法與上面文檔模板類函數類似。
???????????????????? 以上各類的成員變量或成員函數基本上使我們在任何位置都可以訪問到應用程序的
????????????????? 每一個角落,但對于頻繁性地訪問某一固定對象或對運行速度要求較高的場合,我們可以
????????????????? 通過保存該對象的窗口句柄(只限于派生于 CWnd 的類),在需要的時候,通過函數
????????????????? CWnd::FromHandle(HWND hwnd) 來得到該對象的指針.

轉載于:https://www.cnblogs.com/ahuo/archive/2006/12/16/594441.html

總結

以上是生活随笔為你收集整理的VC++的应用程序框架中各类之间的访问方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 97成人在线观看 | 国产精品九九九九九 | 性xxxx狂欢老少配o | 久久这里只有精品国产 | 国产精品丝袜黑色高跟鞋的设计特点 | 国产三级久久久久 | 齐天大性床战铁扇公主 | 亚洲无人区码一码二码三码的含义 | 午夜精品久久久久久久 | 黄网站免费看 | 国产麻豆天美果冻无码视频 | 国产精品成人av性教育 | 精品熟妇无码av免费久久 | 日韩性网站 | av在线电影院 | 欧美激情精品久久久久久变态 | 日本伊人色 | 桃色视频在线 | 91久久久久久久 | 香蕉视频免费 | 亚洲av无码一区二区三区在线观看 | 亚洲熟女乱色一区二区三区 | 亚洲精品水蜜桃 | jizzjizz亚洲| 亚洲吧| 夜夜嗨视频 | 91久操 | 欧美巨乳美女 | 亚洲乱视频 | 五月天中文字幕在线 | 天天看夜夜 | yes4444视频在线观看 | 欧美呦呦 | 国产又黄又粗又长 | 4444亚洲人成无码网在线观看 | 国产精品久久久久久久久久久久久久久 | 女人性做爰100部免费 | 午夜免费在线观看 | 国产资源网 | 午夜激情电影在线观看 | 疯狂少妇 | 欧美日韩国产伦理 | 播色网 | 久久7777| 国产三级av在线播放 | 亚洲国产欧美在线 | www在线| 国内老熟妇对白hdxxxx | av黄色在线| 久久精视频 | 国产三级aaa| 黄色免费网站在线 | 四虎影视免费在线观看 | 男女曰逼视频 | 一吻定情2013日剧 | 国产乱码一区二区三区 | 男插女视频在线观看 | 亚洲五码在线 | 精品国产乱码久久久久久蜜臀 | 一本到视频| 琪琪色在线观看 | 久草久| 婷婷五月花| 黄色香港三级三级三级 | 成人毛片在线观看 | 久久精品欧美日韩 | 潘金莲激情呻吟欲求不满视频 | 深夜网站在线观看 | 亚洲国产精品成人无久久精品 | 9l视频自拍九色9l视频成人 | 亚洲字幕av一区二区三区四区 | 久久伊人超碰 | 天堂成人国产精品一区 | 18在线观看视频 | 日韩精品久久久久久久的张开腿让 | 天堂网中文在线观看 | 国产黄频在线观看 | 日韩小视频在线观看 | 黄色高潮 | 午夜大片 | 日韩精品中文字幕在线 | 三级网站在线 | 91精品久久久久久久久久入口 | 一路向西在线看 | 羞羞涩涩视频 | 亚洲国产专区 | 久久伊人久久 | 欧美一级做a爰片免费视频 成人激情在线观看 | 午夜免费观看视频 | 日本在线免费观看视频 | 秋霞视频一区二区 | 国产97色在线 | 日韩 | 黄色av网站在线观看 | 亚洲精品少妇一区二区 | 少妇特殊按摩高潮惨叫无码 | 视频免费1区二区三区 | 亚洲国产视频一区二区三区 | av免费亚洲 | 国内精品久久久久久久久久 |