欢迎来到天天文库
浏览记录
ID:39469612
大小:23.50 KB
页数:4页
时间:2019-07-04
《VC获取各类指针》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC获取各类指针1、获取应用程序指针 CMyApp*pApp=(CMyApp*)AfxGetApp();2、获取主框架指针 CWinApp中的公有成员变量m_pMainWnd就是主框架的指针 CMainFrame*pMainFrame=(CMainFrame*)(AfxGetApp()->m_pMainWnd); 或者 CMainFrame*pMainFrame=(CMainFrame*)AfxGetMainWnd();3、获取菜单指针 CMenu*pMenu=AfxGetMainWnd()->GetMenu();4、获取工具栏
2、、状态栏指针 主框架中可以直接使用m_wndToolBar、m_wndStatusBar 其他: CToolBar*pToolBar=(CToolBar*)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_TOOLBAR); CStatusBar*pStatusBar=CStatusBar*)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);5、获取控件指针 先用GetDlgItem()再转换,如: CButton*pButt
3、on=(CButton*)GetDlgItem(IDC_MYBUTTON);6、获取文档、视图指针SDI:CMainFrame*pMainFrame=(CMainFrame*)AfxGetMainWnd();CYourDoc*pDoc=(CYourDoc*)pMainFrame->GetActiveDocument();CYourView*pView=(CYourView*)pMainFrame->GetActiveView();MDI:CMainFrame*pMainFrame=(CMainFrame*)AfxGetMainWnd();C
4、ChildFrame*pChildFrame=(CChildFrame*)pMainFrame->GetActiveFrame();CYourDoc*pDoc=(CYourDoc*)pChildFrame->GetActiveDocument();CYourView*pView=(CYourView*)pChildFrame->GetActiveView();7、文档、视图从视图获取文档指针:CYourDoc*pDoc=GetDocument();从文档获取视图指针:利用成员函数GetFirstViewPosition()和GetNextV
5、iew()遍历virtualPOSITIONGetFirstViewPosition()const;virtualCView*GetNextView(POSITION&rPosition)const;SDI:CYourView*pView;POSITIONpos=GetFirstViewPosition();pView=GetNextView(pos);MDI:定义函数CView*CYourDoc::GetView(CRuntimeClass*pClass){CView*pView;POSITIONpos=GetFirstViewPosit
6、ion();while(pos!=NULL){pView=GetNextView(pos);if(!pView->IsKindOf(pClass))break;}if(!pView->IsKindOf(pClass)){AfxMessageBox("ConntLocatetheView.");returnNULL;}returnpView;}使用如下:CYourView*pView=(CYourView*)GetView(RUNTIME_CLASS(CYourView));8、文档模版、文档从文档获取文档模版指针:CDocTemplate*
7、GetDocTemplate()const;从文档模版获取文档指针:viaualPOSITIONGetFirstDocPosition()const=0;visualCDocument*GetNextDoc(POSITION&rPos)const=0;9、获取分割视图中各个视图的指针主框架中定义:CSplitterWndm_wndSplitter;定义两个View类:CView1、CView2框架类中重载:BOOLCMainFrame::OnCreateClient(LPCREATESTRUCT,CCreateContext*pContex
8、t){VERIFY(m_splitter.CreateStatic(this,2,1));//分割成两行一列VERIFY(m_splitter.CreateView(0,0,RU
此文档下载收益归作者所有