惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
WordPress大学
WordPress大学
小众软件
小众软件
云风的 BLOG
云风的 BLOG
IT之家
IT之家
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
博客园 - 【当耐特】
T
Tailwind CSS Blog
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
宝玉的分享
宝玉的分享
博客园 - Franky
F
Fortinet All Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
D
Docker
博客园 - 聂微东
C
Check Point Blog
H
Help Net Security

博客园 - 流云

编译时找不到xxx.pch [ZT] SQL Server 中四种匹配符的含义[ZT] TAB ORDER按回车键下个控件自动获得焦点 VC获取系统时间、程序运行时间 - 流云 - 博客园 VC常用数据类型使用转换详解 [转] - 流云 - 博客园 VC遍历文件夹下所有文件和文件夹 - 流云 - 博客园 对话框与其控件的颜色 让对话框中的菜单变灰(根据可用性而显示) 获取 本机 SQL SERVER 服务器名 - 流云 用VC++修改注册表----让我们踏出第一步(适合初学者) VC+ADO 连接ACCESS和SQL SERVER的方法 动态链接库DLL的编写和调用(四则表达式计算) SQL SERVER 数据库备份还原 列表控件ListCtrl的使用 文本读写 CStdioFile流文件 文件读写 CFile 字体对话框FontDialog 颜色对话框ColorDialog VC获取系统时间、程序运行时间
获得指针(文档、视图、框架)
流云 · 2005-05-29 · via 博客园 - 流云

CWinApp * AfxGetApp()是一个全局函数,在任何地方都可以获得C***App类对象的指针.
    
//在C***App类中:
    获得CMainFrame类对象的指针:
    CMainFrame
* pMain=(CMainFrame*)CWinThread::m_pMainWnd;
    获得C
***View类对象的指针:(假设只有一个视图,须通过CMainFrame)
        C
***View *pView=(C***View *)((CMainFrame*)m_pMainWnd)->CFrameWnd::GetActiveView();
    获得C
***Doc类对象的指针(须通过CMainFrame)
        C
***Doc *pDoc=(C***Doc *)((CMainFrame*)m_pMainWnd)->CFrameWnd::GetActiveDocument();//在CMainFrame类中:
    获得CMainFrame类对象的指针:
        CMainFrame
* pMain=(CMainFrame*)CWnd::GetActiveWindow();
    获得C
***View类对象的指针:
        C
***View *pView=(C***View *)CFrameWnd::GetActiveView();
    获得C
***Doc类对象的指针
        C
***Doc *pDoc=(C***Doc *)CFrameWnd::GetActiveDocument();//在C***Doc类中:
    获得CMainFrame类对象的指针:
    CMainFrame
* pMain=(CMainFrame*)AfxGetMainWnd();
    CMainFrame
* pMain=(CMainFrame*)AfxGetApp()->m_pMainWnd;
    获得C
***View类对象的指针:
        (假设只有一个视图,须通过CMainFrame)
        C
***View *pView=(C***View *)((CMainFrame*)AfxGetApp()->m_pMainWnd)->CFrameWnd::GetActiveView():
      (假设有两个以上视图,以找寻C
***View为例)
        POSITION pos
=CDocument::GetFirstViewPosition();
        
while(pos != NULL)
        {
            CView 
*pView=CDocument::GetNextView(pos);
            
if(pView->GetRuntimeClass()==RUNTIME_CLASS(C**View))
            {
                
            }
        }
//在C***View类中:
    获得CMainFrame类对象的指针:
        CMainFrame
* pMain=(CMainFrame*)AfxGetMainWnd();
        CMainFrame
* pMain=(CMainFrame*)CWnd::GetParentFrame();    
        CMainFrame
* pMain=(CMainFrame*)AfxGetApp()->m_pMainWnd;
    获得C
***Doc类对象的指针
        C
***Doc *pDoc= GetDocument();

    注意:

1 在CFrameWnd::ActivateFrame函数之后可以取得CMainFrame *
        
2 在CView::OnCreate函数执行完毕后,可以查找C***View *
        
3 在CView::OnCreate函数执行完毕后,可以取得C***Doc *