doc,view,frame互相呼叫
訪問應用程式的其它類
獲得CWinApp: -在CMainFrame,CChildFrame,CDocument,CView中直接呼叫AfxGetApp()或用theApp -在其它類中只能用AfxGetApp() 獲得CMainFrame: -在CMinApp中用AfxGetMainWnd()或者m_pMainWnd -在CChildFrame中可用GetParentFrame() -在其它類中用AfxGetMainWnd() 獲得CChildFrame: -在CView中用GetParentFrame() -在CMainFrame中用MDIGetActive()或GetActiveFrame() -在其它類中用AfxGetMainWnd()->MDIGetActive()或AfxGetMainWnd()->GetActiveFrame() 獲得CDocument: -在CView中用GetDocument() -在CChildFrame中用GetActiveView()->GetDocument() -在CMainFrame中用 -if SDI:GetActiveView()->GetDocument() -if MDI:MDIGetActive()->GetActiveView()->GetDocument() -在其它類中 -if SDI:AfxGetMainWnd()->GetActiveView()->GetDocument() -if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView()->GetDocument() 獲得CView: -在CDocument中 POSITION pos = GetFirstViewPosition();GetNextView(pos) -在CChildFrame中 GetActiveView() -在CMainFrame中 -if SDI:GetActiveView() -if MDI:MDIGetActive()->GetActiveView() -在其它類中 -if SDI:AfxGetMainWnd()->GetActiveView() -if MDI:AfxGetMainWnd()->MDIGetActive()->GetActiveView() ////////////////////////////////////////////////////////////////// 不錯!!! 不過要注意在doc中要取得view的指標C*View要注意類C*View宣告的問題, 因為預設情況下,mfc在*View.h中已經包含了*Doc.h,如果在*Doc.h中包含 *View.h,就會引起巢狀包含問題,這樣要在*Doc.h中加入 class C*View; 而在*Doc.cpp中加入 #include "*View.h" ////////////////////////////////////////////////////////////////// 其實完全可以在CYourApp中新增各種視或文件的指標,在那些視或文件初 始化的時候將指標傳給CYourApp中的對應變數,這樣以後不管在哪用上面 指標只需(CYourApp*)AfxGetApp()取其屬性變數即可,明瞭而且清楚更是 方便我一直專門操作的說:) ////////////////////////////////////////////////////////////////// 我先拋塊磚,有玉的砸過來! 在何時何地,你都可以通過以下方法精確的得到任何一個物件(Application,DocTemplate,Document,View,Frame) 1。通過AfxGetApp()得到當前的App物件; 2。通過AfxGetMainWnd()得到主視窗; 3。通過CMDIFrameWnd::GetActiveFrame得到當前活動視窗; 4。通過GetNextWindow()遍例所有的子視窗;(如果要得到你想要的子視窗,可以通過特定的成員變數來標誌); 5。通過CWinApp::GetFirstDocTemplatePostion()以及CWinApp::GetNextDocTemplate()的組合應用來遍歷所有的DocTemplate物件,並且用CDocTemplate::GetDocString()來判斷當前得到的文件莫板物件是哪個。 6。通過CDocTemplate::GetFirstDocPosition()以及CDocTemplate的GetNextDoc()組合來遍歷所有的該模板的文件物件,並用CDocument::GetDocTemplate()來得到文件模板,用CDocment::GetTitle() 或者GetPathName()來判斷當前的文件是哪個。 7。通過CDocuemt的GetFirstViewPositon()以及GetNextView()來遍歷檢視物件,一般通過訪問View的成員變數來區別各個檢視;通過CView::GetDocument()來得到文件物件; 8。Frame->View: 通過GetActiveView方法; 9。Frame->Doc:通過GetActiveDocument(); 10。View->Frame:GetParentFrame(); 11。View->Doc:GetDocuemt()//前面已經說了。 12。Doc->View:前面說了; 13。Doc->Frame:不知道有沒有很直接的方法。 |
相關文章
- 呼叫Frame中的指令碼指令碼
- groovy與javah互相呼叫Java
- 【DOC】VIEW: "V$LOCK" Reference NoteView
- Unity——Js和Unity互相呼叫UnityJS
- 微服務互相呼叫-Feign微服務
- self.view.frame的佈局問題View
- Js呼叫Java方法並互相傳參JSJava
- iOS下JS與OC互相呼叫(四)--JavaScriptCoreiOSJSJavaScript
- 不用DOC/VIEW類結構進行列印 (轉)View
- ios基礎之 view的frame 與 bounds 的區別 (轉)iOSView
- python和C的如何實現互相呼叫?Python
- 兩個JS之間的函式互相呼叫JS函式
- iOS下JS與原生OC互相呼叫(總結)iOSJS
- iOS下JS與OC互相呼叫(三)--MessageHandleriOSJS
- Lua 和 C/C++ 互相呼叫例項分析C++
- Cocos Creator iOS 互相呼叫看我的就夠了iOS
- iOS下JS與OC互相呼叫(五)--UIWebView + WebViewJavascriptBridgeiOSJSUIWebViewJavaScript
- iOS下JS與OC互相呼叫(六)--WKWebView + WebViewJavascriptBridgeiOSJSWebViewJavaScript
- iOS下JS與OC互相呼叫(七)--Cordova 基礎iOSJS
- Kotlin的互操作——Kotlin與Java互相呼叫KotlinJava
- 129、springcloud-eureka-client微服務的互相呼叫SpringGCCloudclient微服務
- 2018-07-12 OC 與swift 互相呼叫Swift
- iOS下JS與OC互相呼叫(一)--UIWebView 攔截URLiOSJSUIWebView
- iOS下JS與OC互相呼叫(二)--WKWebView 攔截URLiOSJSWebView
- 被標記為事務的方法互相呼叫的坑(下)
- 被標記為事務的方法互相呼叫的坑(上)
- iOS下JS與OC互相呼叫(八)--Cordova詳解+實戰iOSJS
- 外掛如何呼叫本外掛的View?View
- Android Activity/Service/Broadcaster三大元件之間互相呼叫AndroidAST元件
- Python FramePython
- Android JNI實現Java與C/C++互相呼叫,以及so庫的生成和呼叫(JNI方式呼叫美圖秀秀so)AndroidJavaC++
- 使用HTTP響應頭X-Frame-Options防止網頁被FrameHTTP網頁
- Tkinter (06) 框架部件 Frame框架
- chrome frame使用記錄Chrome
- sqlserver docSQLServer
- doc指令
- WebSocket的Frame協議解析Web協議
- iOS 重寫cell的FrameiOS