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 ,按键和其他的可以获取到
展开
 我来答
bhtzu
推荐于2016-11-30 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4238万
展开全部

首先注意,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)当然找不到静态框的窗口,因为这个窗口根本没接收消息。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式