MFC 獲取對話框的指針

對于MFC的對話框,要對其操作必須先獲取到它的對象指針,下面是對對話框的對象指針的獲取方式的解讀
1.獲取主窗口的對話框的對象指針

CWnd* pWnd = AfxGetApp()->GetMainWnd();

2.獲取指定對話框的對象指針

CWnd* pWnd = FindWindow(NULL, _T("對話框的名稱"));

3.ID , 指針, 句柄三者的轉化

ID--HANDLE--HWND三者之間的互相轉換 
id->句柄-----------hWnd = ::GetDlgItem(hParentWnd,id); 
id->指針-----------CWnd::GetDlgItem(); 
句柄->id-----------id = GetWindowLong(hWnd,GWL_ID); 
句柄->指針--------CWnd *pWnd=CWnd::FromHandle(hWnd); 
指針->ID----------id = GetWindowLong(pWnd->GetSafeHwnd,GWL_ID); 
GetDlgCtrlID(); 
指針->句柄--------hWnd=cWnd.GetSafeHandle() or mywnd->m_hWnd;
HICON->ID--------HICON hIcon = AfxGetApp()->LoadIcon(nIconID);
HICON hIcon = LoadIcon(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(nIconID));

附注:獲得窗體句柄三種方法

1.HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName)
2. HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lpWindowName)
3.HWND WindowFromPoint(POINT& Point)//獲得當前鼠標光標位置的窗體HWND
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1、窗體 1、常用屬性 (1)Name屬性:用來獲取或設置窗體的名稱,在應用程序中可通過Name屬性來引用窗體。 ...
    Moment__格調閱讀 4,595評論 0 11
  • HTML標簽解釋大全 一、HTML標記 標簽:!DOCTYPE 說明:指定了 HTML 文檔遵循的文檔類型定義(D...
    米塔塔閱讀 3,321評論 1 41
  • 10#數據類型 合并數組和非合并數組 合并數組:存儲方式是連續的,中間沒有閑置空間。例如,32bit的寄存器,可以...
    constant007閱讀 33,272評論 0 18
  • 在MFC中,對資源的操作通常都是通過一個與資源相關的類來完成的。 模態對話框domodal 非模態對話框creat...
    側漏的少年閱讀 1,018評論 0 1
  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,524評論 0 17