VC中各类的调用

上传人:l**** 文档编号:134546384 上传时间:2020-06-06 格式:DOC 页数:17 大小:55KB
返回 下载 相关 举报
VC中各类的调用_第1页
第1页 / 共17页
VC中各类的调用_第2页
第2页 / 共17页
VC中各类的调用_第3页
第3页 / 共17页
VC中各类的调用_第4页
第4页 / 共17页
VC中各类的调用_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《VC中各类的调用》由会员分享,可在线阅读,更多相关《VC中各类的调用(17页珍藏版)》请在金锄头文库上搜索。

1、6、在其他类中获取文档、视图指针SDI:CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();CYourDoc* pDoc = (CYourDoc*)pMainFrame-GetActiveDocument();CYourView* pView = (CYourView*)pMainFrame-GetActiveView();MDI:CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();CChildFrame* pChildFrame = (CChildFrame*)pMainFrame

2、-GetActiveFrame();CYourDoc* pDoc = (CYourDoc*)pChildFrame-GetActiveDocument();CYourView* pView = (CYourView*)pChildFrame-GetActiveView();从视图获取文档指针:CYourDoc* pDoc = GetDocument();从文档获取视图指针:利用成员函数 GetFirstViewPosition() 和 GetNextView() 遍历virtual POSITION GetFirstViewPosition() const;virtual CView* Get

3、NextView(POSITION& rPosition) const;SDI:CYourView* pView;POSITION pos = GetFirstViewPosition();pView = GetNextView(pos);MDI:定义函数CView* CYourDoc:GetView(CRuntimeClass* pClass) CView* pView; POSITION pos=GetFirstViewPosition(); while(pos!=NULL) pView=GetNextView(pos); if(!pView-IsKindOf(pClass) break;

4、 if(!pView-IsKindOf(pClass) AfxMessageBox(Connt Locate the View.); return NULL; return pView;使用如下:CYourView* pView=(CYourView*)GetView(RUNTIME_CLASS(CYourView);1、获取应用程序指针CMyApp* pApp=(CMyApp*)AfxGetApp();2、获取主框架指针CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()-

5、m_pMainWnd);或者CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();、获取菜单指针CMenu* pMenu = AfxGetMainWnd()-GetMenu();、获取工具栏、状态栏指针主框架中可以直接使用m_wndToolBar、m_wndStatusBar其他:CToolBar* pToolBar = (CToolBar*)AfxGetMainWnd()-GetDescendantWindow(AFX_IDW_TOOLBAR);CStatusBar* pStatusBar = (CStatusBar*)AfxGetMai

6、nWnd()-GetDescendantWindow(AFX_IDW_STATUS_BAR);5、获取控件指针先用 GetDlgItem() 再转换,如:CButton* pButton = (CButton*)GetDlgItem(IDC_MYBUTTON);6、获取文档、视图指针SDI:CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();CYourDoc* pDoc = (CYourDoc*)pMainFrame-GetActiveDocument();CYourView* pView = (CYourView*)pMainFrame

7、-GetActiveView();MDI:CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();CChildFrame* pChildFrame = (CChildFrame*)pMainFrame-GetActiveFrame();CYourDoc* pDoc = (CYourDoc*)pChildFrame-GetActiveDocument();CYourView* pView = (CYourView*)pChildFrame-GetActiveView();7、文档、视图从视图获取文档指针:CYourDoc* pDoc = Get

8、Document();从文档获取视图指针:利用成员函数 GetFirstViewPosition() 和 GetNextView() 遍历virtual POSITION GetFirstViewPosition() const;virtual CView* GetNextView(POSITION& rPosition) const;SDI:CYourView* pView;POSITION pos = GetFirstViewPosition();pView = GetNextView(pos);MDI:定义函数CView* CYourDoc:GetView(CRuntimeClass*

9、pClass) CView* pView; POSITION pos=GetFirstViewPosition(); while(pos!=NULL) pView=GetNextView(pos); if(!pView-IsKindOf(pClass) break; if(!pView-IsKindOf(pClass) AfxMessageBox(Connt Locate the View.); return NULL; return pView;使用如下:CYourView* pView=(CYourView*)GetView(RUNTIME_CLASS(CYourView);8、文档模版、

10、文档从文档获取文档模版指针:CDocTemplate* GetDocTemplate() const;从文档模版获取文档指针:viaual POSITION GetFirstDocPosition( ) const = 0; visual CDocument* GetNextDoc(POSITION & rPos) const = 0;9、获取分割视图中各个视图的指针主框架中定义:CSplitterWnd m_wndSplitter;定义两个View类:CView1、CView2框架类中重载:BOOL CMainFrame:OnCreateClient(LPCREATESTRUCT, CCre

11、ateContext* pContext) VERIFY(m_splitter.CreateStatic(this,2,1); /分割成两行一列 VERIFY(m_splitter.CreateView(0,0,RUNTIME_CLASS(CView1),CSize(100,100),pContext); VERIFY(m_splitter.CreateView(1,0,RUNTIME_CLASS(CView2),CSize(100,100),pContext); return TRUE;获取分割视图指针CView1* pView1 = (CView1*)m_wndSplitter.GetPa

12、ne(0,0);CView2* pView2 = (CView2*)m_wndSplitter.GetPane(1,0);10、通过鼠标获得子窗口指针CWnd* ChildWindowFromPoint(POINT point) const;CWnd* ChildWindowFromPoint(POINT point,UINT nFlags) const;用于确定包含指定点的子窗口如 果指定点在客户区之外,函数返回NULL;如果指定点在客户区,但是不属于任何一个子窗口,函数返回该CWnd的指针;如果有多个子窗 口包含指定点,则返回第一个子窗口的指针。还要注意的是,该函数返回的是一个伪窗口指针,

13、不能将它保存起来供以后使用。对于第二个参数 nFlags有几个含义:CWP_ALL file:/不忽略任何子窗口CWP_SKIPNIVSIBLE file:/忽略不可见子窗口CWP_SKIPDISABLED file:/忽略禁止的子窗口CWP_SKIPRANSPARENT file:/忽略透明子窗口获 取工具条的指针在缺省状态下,有一个默认的工具条AFX_IDW_TOOLBAR, 我们可以根据相应的ID去获取工具条指针,方法如下: CToolBar* pToolBar=(CToolBar*)AfxGetMainWnd()-GetDescendantWindow(AFX_IDW_TOOLBAR)

14、;是不是很简单?获取状态条的指 针在缺省状态下,有一个默认的状态条AFX_IDW_STATUS_BAR, 我们自然也可以根据相应的ID去获取状态条指针,方法如下: CStatusBar* pToolBar=(CStatusBar*)AfxGetMainWnd()-GetDescendantWindow(AFX_IDW_STATUS_BAR);是不是同样很简单? 获取控件的指针 这里有两种方法。一、调用CWnd: : GetDlgItem, 获取一个CWnd*指针调用成员函数。例如,我们想获取CButton指针,方法如下: CButton* pButton=(CButton*) GetDlgItem (IDC_MYBUTTON);二、可以使用ClassWizard将控件和成员变量联系起来。在ClassWizard中 简单地选择Member Variables标签,然后选择Add Variable 按钮。如 果在对话资源编辑器中,按下Ctrl键并双击控件即可转到Add Member Variable对 话。 在文档类中调用 视图类指针我们可以利用文档类的成员函数GetF

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号