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:不知道有沒有很直接的方法。 |
相關文章
- 微服務互相呼叫-Feign微服務
- Unity——Js和Unity互相呼叫UnityJS
- python和C的如何實現互相呼叫?Python
- 2018-07-12 OC 與swift 互相呼叫Swift
- 129、springcloud-eureka-client微服務的互相呼叫SpringGCCloudclient微服務
- 兩個JS之間的函式互相呼叫JS函式
- Cocos Creator iOS 互相呼叫看我的就夠了iOS
- 外掛如何呼叫本外掛的View?View
- 被標記為事務的方法互相呼叫的坑(下)
- 被標記為事務的方法互相呼叫的坑(上)
- uni-app實現web-view和App之間的互相通訊APPWebView
- Python FramePython
- Android JNI實現Java與C/C++互相呼叫,以及so庫的生成和呼叫(JNI方式呼叫美圖秀秀so)AndroidJavaC++
- sqlserver docSQLServer
- Openfeign動態構建client實現同服務serviceId不同instanceId互相呼叫client
- 使用HTTP響應頭X-Frame-Options防止網頁被FrameHTTP網頁
- Tkinter (06) 框架部件 Frame框架
- 部署Onlyoffice Doc ServerServer
- WEB安全~X-Frame-OptionsWeb
- WebSocket的Frame協議解析Web協議
- Unity3d Android SDK接入解析(一)Unity3d 與 Android之間的互相呼叫Unity3DAndroid
- Java Doc 生成文件Java
- DocTo convert doc(x) to pdf
- NLP ——Doc2vec
- Ijkplayer skip_frame 什麼意思?
- UIKit Inside: frame bounds position anchorPoint centerUIIDE
- nginx設定X-Frame-OptionsNginx
- Frame Grab幀影像匯出工具
- zend_vm_stack_push_call_frame
- Tkinter (27) 框架部件 ttk.Frame框架
- Stack frame layout on x86-64
- router-view子頁面呼叫父頁面方法更新父頁面引數View
- doc轉docx(java-python)JavaPython
- Oracle 最新PSU (Doc ID 2118136.2)Oracle
- Doc2vec技術
- Android自定義View:View(二)AndroidView
- Selenium多表單切換switch_to.frame
- 詳解iframe與frame的區別
- netty系列之:內建的Frame detectionNetty