GetMainWnd是应用程序为一个OLE服务器,调用该函数得到应用程序活动主窗口的指针。
信息简介
功能:
如果应用程序为一个OLE服务器,调用该函数得到应用程序活动主窗口的指针,而不是应用程序对象m_pMainWnd成员的直接参考。
语法:
virtual CWnd * GetMainWnd();
返回值:
函数返回指向一个窗口的指针,这个窗口为两类窗口中的一种。
若线程是一个OLE服务器的一部分,并且拥有一个位于活动容器中的现场
激活的对象,函数返回CWinThread 对象的CWinApp::m_pActiveWnd数据成员。
若没有位于容器中的现场激活的对象,或用户的应用程序不是OLE服务器,函数返回线程对象的m_pMainWnd数据成员。
说明:
对用户界面线程,调用该函数等价于引用应用程序对象的m_pActiveWnd成员。
若应用程序不是一个OLE服务器,调用此函数等价于直接引用应用程序对象m_pMainWnd成员。
重载该函数修正默认的行为。
示例
/******************************************************
演示函数原型:CWnd* pMainWnd=pMyThread->GetMainWnd();
功能说明:获得线程主窗口的指针。
******************************************************/
CWnd* pMainWnd=pMyThread->GetMainWnd();
//一般会使用以下方式获得主窗体的指针
CWnd * pMainWnd =AfxGetMainWnd();
//下为CWinThread::GetMainWnd()默认处理程序
CWnd *CWinThread::GetMainWnd()
{
if(m_pActiveWnd!=NULL)
//m_pActiveWnd 获得的窗口句柄
return m_pActiveWnd;
if(m_pMainWnd!=NULL)
//m_pMainWnd 主窗口句柄
return m_pMainWnd;
return CWnd::GetActiveWindow();
}