龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

解析VC++6中的指针

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
摘要:指针,在VC++中是很常见的,这里我们并不打算去详细讲解在C++中那样的指针用法(我们会有另外的文章去详细讨论),这里主要讲一下VC++中常见的对指针获取的方法,包括:工

摘要:指针,在VC++中是很常见的,这里我们并不打算去详细讲解在C++中那样的指针用法(我们会有另外的文章去详细讨论),这里主要讲一下VC++中常见的对指针获取的方法,包括:工具条、状态条、控件和窗口的指针。

     获取工具条的指针

     在缺省状态下,有一个默认的工具条AFX_IDW_TOOLBAR,我们可以根据相应的ID去获取工具条指针,方法如下:

     CToolBar* pToolBar=(CToolBar*)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_TOOLBAR);

     是不是很简单?
 
     获取状态条的指针

     在缺省状态下,有一个默认的状态条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对话。

    在文档类中调用视图类指针

    我们可以利用文档类的成员函数GetFirstView()和GetNextView()遍历视图。

    在视图类中调用文档类

    其实,在视图类中有一个现成的成员函数供我们使用,那就是:GetDocument();利用它我们可以很容易的得到文档类指针,我们先看一下GetDocument()函数的实现:

    CColorButtonDoc* CColorButtonView::GetDocument()
   {
 ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CColorButtonDoc)));
 return (CColorButtonDoc*)m_pDocument;
   }

   这里实际上是将m_pDocument强制转换成CColorButtonDoc*,也就是我们想要的。

精彩图集

赞助商链接