博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC中各种指针的获取
阅读量:2233 次
发布时间:2019-05-09

本文共 1585 字,大约阅读时间需要 5 分钟。

       VC中编程对于刚刚开始学习的同学,最大的障碍和问题就是消息机制和指针获取与操作。其实这些内容基本上是每本VC学习工具书上必讲的内容,而且通过MSDN很多问题都能解决。一般我们使用的框架是VC提供的Wizard生成的MFC   App   Wizard(exe)框架,无论是多文档还是单文档,都存在指针获取和操作问题。下面这节内容主要是一般的框架,然后再讲多线程中的指针使用。使用到的类需要包含响应的头文件。首先一般获得本类(视,文档,对话框都支持)实例指针this,用this的目的,主要可以通过类中的函数向其他类或者函数中发指针,以便于在非本类中操作和使用本类中的 功能。  

目录:

1)   在View中获得Doc指针  

  2)   在App中获得MainFrame指针  
  3)   在View中获得MainFrame指针  
  4)   获得View(已建立)指针  
  5)   获得当前文档指针  
  6)   获得状态栏与工具栏指针  
  7)   获得状态栏与工具栏变量  
  8)   在Mainframe获得菜单指针  
  9)   在任何类中获得应用程序类  
  10)   从文档类取得视图类的指针

 

1) 在View中获得Doc指针  

         CYouSDIDoc   *pDoc=GetDocument();一个视只能有一个文档。

2)   在App中获得MainFrame指针  

        CWinApp   中的   m_pMainWnd变量就是MainFrame的指针

        也可以:   CMainFrame   *pMain   =(CMainFrame   *)AfxGetMainWnd();

3)   在View中获得MainFrame指针  

        CMainFrame   *pMain=(CmaimFrame   *)AfxGetApp()->m_pMainWnd

4)   获得View(已建立)指针  

      CMainFrame   *pMain=(CmaimFrame   *)AfxGetApp()->m_pMainWnd;  
      CyouView   *pView=(CyouView   *)pMain->
GetActiveView(); 

5)   获得当前文档指针

      CDocument   *   pCurrentDoc   =(CFrameWnd   *)m_pMainWnd->GetActiveDocument();

6)   获得状态栏与工具栏指针

     CStatusBar   *   pStatusBar=(CStatusBar   *)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);  

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

7)   如果框架中加入工具栏和状态栏变量还可以这样    

    (CMainFrame   *)GetParent()->m_wndToolBar;  
    (CMainFrame   *)GetParent()->m_wndStatusBar; 

8)   在Mainframe获得菜单指针

     CMenu   *pMenu=m_pMainWnd->GetMenu();

 9) 在任何类中获得应用程序类  

     用MFC全局函数AfxGetApp()获得。

10)   从文档类取得视图类的指针   

         从文档获得视图类指针目的一般为了控制同一文档的多个视图的定位问题,我的体会特别是文字处理CEditView当产生多个视图类时,这个功能是非常需要的。    
       CDocument类提供了两个函数用于视图类的定位:  
      GetFirstViewPosition()和GetNextView()    
      virtual   POSITION   GetFirstViewPosition()   const;  
      virtual   CView*   GetNextView(POSITION&   rPosition)   const;

 

 

转载地址:http://vsbbb.baihongyu.com/

你可能感兴趣的文章
【LEETCODE】36-Valid Sudoku
查看>>
【LEETCODE】205-Isomorphic Strings
查看>>
【LEETCODE】204-Count Primes
查看>>
【LEETCODE】228-Summary Ranges
查看>>
【LEETCODE】27-Remove Element
查看>>
【LEETCODE】66-Plus One
查看>>
【LEETCODE】26-Remove Duplicates from Sorted Array
查看>>
【LEETCODE】118-Pascal's Triangle
查看>>
【LEETCODE】119-Pascal's Triangle II
查看>>
【LEETCODE】190-Reverse Bits
查看>>
【学习方法】如何分析源代码
查看>>
word2vec 模型思想和代码实现
查看>>
怎样做情感分析
查看>>
用深度神经网络处理NER命名实体识别问题
查看>>
用 RNN 训练语言模型生成文本
查看>>
RNN与机器翻译
查看>>
用 Recursive Neural Networks 得到分析树
查看>>
RNN的高级应用
查看>>
TensorFlow-7-TensorBoard Embedding可视化
查看>>
轻松看懂机器学习十大常用算法
查看>>