複製鏈接
請複製以下鏈接發送給好友

GetMainWnd

鎖定
GetMainWnd是應用程序為一個OLE服務器,調用該函數得到應用程序活動主窗口的指針。
外文名
GetMainWnd
功    能
得到應用程序活動主窗口的指針
種    類
兩類
語    法
virtual CWnd * GetMainWnd();

目錄

GetMainWnd信息簡介

功能:
如果應用程序為一個OLE服務器,調用該函數得到應用程序活動主窗口的指針,而不是應用程序對象m_pMainWnd成員的直接參考。
語法:
virtual CWnd * GetMainWnd(); [1] 
返回值:
函數返回指向一個窗口的指針,這個窗口為兩類窗口中的一種。
若線程是一個OLE服務器的一部分,並且擁有一個位於活動容器中的現場
激活的對象,函數返回CWinThread 對象的CWinApp::m_pActiveWnd數據成員。
若沒有位於容器中的現場激活的對象,或用户的應用程序不是OLE服務器,函數返回線程對象的m_pMainWnd數據成員。
説明:
對用户界面線程,調用該函數等價於引用應用程序對象的m_pActiveWnd成員。
若應用程序不是一個OLE服務器,調用此函數等價於直接引用應用程序對象m_pMainWnd成員。
重載該函數修正默認的行為。

GetMainWnd示例

/******************************************************
演示函數原型: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();
}
參考資料
  • 1.    MSDN windows高級編程指南