GetMainWnd

GetMainWnd是應用程式為一個OLE伺服器,調用該函式得到應用程式活動主視窗的指針。

基本介紹

  • 外文名:GetMainWnd
  • 功能:得到應用程式活動主視窗的指針
  • 種類:兩類
  • 語法:virtual CWnd * GetMainWnd();
介紹,示例,

介紹

功能:
如果應用程式為一個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();
}

相關詞條

熱門詞條

聯絡我們