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;

推荐文章

醒来遇到「鬼压床」怎么办?方法其实很简单
365bet网站

醒来遇到「鬼压床」怎么办?方法其实很简单

📅 07-17 👁️‍🗨️ 5863
糯米粉可以做汤圆吗?糯米粉做汤圆的方法?
36365最新线路检测

糯米粉可以做汤圆吗?糯米粉做汤圆的方法?

📅 07-27 👁️‍🗨️ 6641
pdd100元国产joycon手柄解析
36365最新线路检测

pdd100元国产joycon手柄解析

📅 07-31 👁️‍🗨️ 2518