MFC中視窗控制代碼和控制元件控制代碼的獲取
阿新 • • 發佈:2019-02-07
1. 程式主視窗控制代碼的獲得
CWnd* p = AfxGetMainWnd();//函式AfxGetMainWnd()獲得主對話方塊的指標p
CWnd* p = AfxGetMainWnd();//函式AfxGetMainWnd()獲得主對話方塊的指標p
HWND h = p->m_hWnd;
//主視窗類的成員變數m_hWnd即為主對話方塊控制代碼h
例如:::SendMessage(AfxGetMainWnd()->m_hWnd, WM_MY_DOSOME, 0, (LPARAM)i);
HWND EditHwnd = CWnd::GetDlgItem(h,IDC_EDIT1); //函式GetDlgItem()的第一個引數為對話方塊的控制代碼,第二個引數為對話方塊內某控制元件的ID,返回值為該控制元件的控制代碼。
HWND EditHwnd = GetDlgItem(IDC_EDIT1)->m_hWnd; //函式GetDlgItem()的引數為對話方塊內控制元件的ID,返回值為該控制元件的指標。例如:
CString str(_T("dd"));
::SendMessage(AfxGetMainWnd()->GetDlgItem(IDC_COMBO3)->m_hWnd, WM_SETTEXT , 0 , (LPARAM)str.GetBuffer(0));
3. 在視窗類中
this->m_hWnd 或者 HWND h = this->GetSafeHwnd()
4. 子視窗控制代碼 ::FindWindow(NULL,WindowsName)
CWnd* pWnd = FindWindow(NULL,_T("清芝--支票機"));
HWND hWnd = pWnd->m_hWnd;