MFC怎么获取鼠标移动到那个GROUPBOX控件上面
我使用:PreTranslateMessage(MSG*pMsg)消息函数,CWnd*pWnd=CWnd::FromHandle(pMsg->hwnd);intnID=p...
我使用:PreTranslateMessage(MSG* pMsg)消息函数,
CWnd* pWnd=CWnd::FromHandle(pMsg->hwnd);
int nID= pWnd->GetDlgCtrlID();
但是获取不到GOUPBOX的ID ,按键和其他的可以获取到 展开
CWnd* pWnd=CWnd::FromHandle(pMsg->hwnd);
int nID= pWnd->GetDlgCtrlID();
但是获取不到GOUPBOX的ID ,按键和其他的可以获取到 展开
1个回答
展开全部
首先注意,GroupBox在资源界面中看看id,如果是IDC_STATIC,就需要改一下,这个默认id是无法获取的,改成其它任何不冲突的id都可以(比如IDC_STATIC1)。
如果只是获取鼠标移动到GroupBox,只需要在对话框的OnMouseMove里面:
CRect rt;
GetDlgItem(IDC_STATIC1)->GetWindowRect(rt);
if(rt.PtInRect(point))
{
//鼠标在静态框上,这里写执行代码
}
追问
point是什么东东
我用这个CWnd* pWnd=CWnd::FromHandle(pMsg->hwnd);
int nID= pWnd->GetDlgCtrlID();
去获取我鼠标移动到的控件的ID,但是获取不到 我修改啦ID,改成也是IDC_STATIC1但是获取不到
追答
你在对话框的PreTranslateMessage当然获取不到,静态框是不接受鼠标消息的,消息直接由对话框处理,因此你通过FromHandle(pMsg->hwnd)当然找不到静态框的窗口,因为这个窗口根本没接收消息。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询