afxgetapp专题

AfxGetApp()-GetMainWnd与AfxGetMainWnd的区别

近日,调试程序在工作线程中要使用到主对话框的一个成员变量,当时懒得使用参数传递的方式,直接在函数里面通过afxGetmainWnd获取主窗口指针再通过指针获取成员变量的值,结果运行时报0x000005错误,当把afxGetmainWnd换成AfxGetApp()->GetMainWnd时确一切OK,运行正常,查阅资料得知: AfxGetMainWnd获取的是当前窗口指针; AfxGetApp

AfxGetApp() GetMainWnd()的使用

AfxGetApp( )是全局的。AfxGetApp( )这个函数可以得到当前应用进程的指针,是CWinApp*类型的,通过这个指针可以访问到这个进程中的对象。比如在全局函数中要向对话框中的列表写数据。 void writeString(char* pString) {    CWnd* pWnd = AfxGetApp()->GetMainWnd();   CMyDlg * pDlg;

AfxGetApp(),this-GetSafeHwnd(),AfxGetMainWnd()-m_hWnd

这3个函数经常弄混:        其中AfxGetApp()是得到代表应用程序的唯一对象the  app的地址,和框架、窗口这些不相干;新建的MFC程序的对话框构造函数中就有一句代码m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);加载这个应用程序的ID为IDR_MAINFRAME的图标,作为这个对话框的图标。       AfxGetMainWn

MFC全局函数开局——AfxGetApp解剖【转自晨风】

MFC中有不少的全局函数,方便在不同对象中获取不同的内容或创建不同的对象。主要全局函数有: AfxWinInit() AfxBeginThread() AfxEndThread() AfxFormatString1() AfxFormatString2() AfxMessageBox()   AfxOutPutDebugString()   AfxGetApp() AfxGetMainWn