*又一个简单的有关问题*
****又一个简单的问题*****
上次在这里问了个”简单的问题“:
问题是这样:
对话框上有个静态控件,运行时,如何知道鼠标移动到了静态控件上,前提是不用给静态控件派生一个类。
于是有几个回答了,且回答的跟我先前写的代码结构是一样的,问题来了,我将静态控件样式(Style)设置为Notify(可通知状态),于是当鼠标移动到静态控件上时,对话接受不到了WM_MOUSEMOVE消息,下面的代码也就....
oid CTestDlgDlg::OnMouseMove(UINT nFlags, CPoint point)
{
CRect rt;
((CStatic*)GetDlgItem(IDC_MY_STATIC))-> GetWindowRect(&rt);
ScreenToClient(&rt);
if(rt.PtInRect(point))
{
MessageBox( "hello!!!! ");
}
else
IsInStatic = FALSE;
CDialog::OnMouseMove(nFlags, point);
}
不知道还有什么办法,大虾不吝指教
------解决方案--------------------
既然你是通过算坐标得到的鼠标位置是否在静态控件之内,
而且弹出对话框是在Dlg的onMouseMove里,
那么静态控件的Notify属性就去掉吧.
------解决方案--------------------
将静态控件样式(Style)Notify去掉(不可通知状态),
上次在这里问了个”简单的问题“:
问题是这样:
对话框上有个静态控件,运行时,如何知道鼠标移动到了静态控件上,前提是不用给静态控件派生一个类。
于是有几个回答了,且回答的跟我先前写的代码结构是一样的,问题来了,我将静态控件样式(Style)设置为Notify(可通知状态),于是当鼠标移动到静态控件上时,对话接受不到了WM_MOUSEMOVE消息,下面的代码也就....
oid CTestDlgDlg::OnMouseMove(UINT nFlags, CPoint point)
{
CRect rt;
((CStatic*)GetDlgItem(IDC_MY_STATIC))-> GetWindowRect(&rt);
ScreenToClient(&rt);
if(rt.PtInRect(point))
{
MessageBox( "hello!!!! ");
}
else
IsInStatic = FALSE;
CDialog::OnMouseMove(nFlags, point);
}
不知道还有什么办法,大虾不吝指教
------解决方案--------------------
既然你是通过算坐标得到的鼠标位置是否在静态控件之内,
而且弹出对话框是在Dlg的onMouseMove里,
那么静态控件的Notify属性就去掉吧.
------解决方案--------------------
将静态控件样式(Style)Notify去掉(不可通知状态),