1. 程式人生 > >MFC中視窗控制代碼和控制元件控制代碼的獲取

MFC中視窗控制代碼和控制元件控制代碼的獲取

1. 程式主視窗控制代碼的獲得
    CWnd* p = AfxGetMainWnd();//函式AfxGetMainWnd()獲得主對話方塊的指標p

    HWND h = p->m_hWnd; //主視窗類的成員變數m_hWnd即為主對話方塊控制代碼h
    例如:::SendMessage(AfxGetMainWnd()->m_hWnd, WM_MY_DOSOME, 0, (LPARAM)i);

2. 控制元件控制代碼的獲得

    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;