對于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