zoukankan      html  css  js  c++  java
  • MFC里AfxGetThread()与AfxGetAPP()的区别

     1 CWinThread* AFXAPI AfxGetThread()
     2 {
     3     // check for current thread in module thread state
     4     AFX_MODULE_THREAD_STATE* pState = AfxGetModuleThreadState();
     5     CWinThread* pThread = pState->m_pCurrentWinThread;
     6 
     7     // if no CWinThread for the module, then use the global app
     8     if (pThread == NULL)
     9         pThread = AfxGetApp();
    10 
    11     return pThread;
    12 }
    1 _AFXWIN_INLINE CWinApp* AFXAPI AfxGetApp()
    2 {
    3 return afxCurrentWinapp;
    4 }
    5 //在AFXWIN.H中 #define afxCurrentWinApp AfxGetModuleState()->m_pCurrentWinApp
    6 //AfxGetModuleState()就是得到当前模块,AfxGetModuleState()->m_pCurrentWinApp=this;得到当前应用程序的对象指针

    AfxGetThread()返回的是当前界面线程对象的指针,AfxGetApp()返回的是应用程序对象theApp的指针.

    如果该应用程序(或进程)只有一个界面线程在运行,那么这两者返回的都是一个全局的应用程序对象theApp的指针。

    如果在多线程时调用AfxGetThread返回的与AfxGetApp并不一定相同。

  • 相关阅读:
    查找算法
    Android IPC
    运输层和TCP/IP协议
    二叉树的学习笔记
    java 和 JVM
    转载: GIt远程操作详解
    java-jpa-criteriaBuilder使用
    java项目构建工具Maven
    虚拟机下安装Maven
    validate表单验证-单独验证
  • 原文地址:https://www.cnblogs.com/MasterMonkInTemple/p/3096453.html
Copyright © 2011-2022 走看看