如何让自定义的基于CStatic的控件响应鼠标移动的消息
2012-10-11 10:52
495 查看
方法一:
本例只讲关于响应WM_MOUSEMOVE消息的处理,其它的消息以此类推.
可以通过在对话框的WM_MOUSEMOVE消息里检查是否鼠标移进Static控件,若是,就PostMessage()给Static控件.
void CDlgDlg::OnMouseMove(UINT nFlags, CPoint point)
{
LPRECT lpRect=new RECT;
m_Static.GetWindowRect(lpRect);
ScreenToClient(lpRect);
if(point.x<lpRect->right && point.x>lpRect->left && point.y<lpRect->bottom && point.y>lpRect->top)
{
POINTS points;
::PostMessage(m_Static.m_hWnd,WM_MOUSEMOVE,NULL,(LPARAM)&points);
}
CDialog::OnMouseMove(nFlags, point);
}
方法二:
设置static控件的属性为notify
static控件就可以获取消息了
void CXXStatic::PreSubclassWindow()
{
// TODO: Add your specialized code here and/or call the base class
DWORD dwStyle = GetStyle();
::SetWindowLong(GetSafeHwnd(), GWL_STYLE, dwStyle | SS_NOTIFY);
CStatic::PreSubclassWindow();
}
本例只讲关于响应WM_MOUSEMOVE消息的处理,其它的消息以此类推.
可以通过在对话框的WM_MOUSEMOVE消息里检查是否鼠标移进Static控件,若是,就PostMessage()给Static控件.
void CDlgDlg::OnMouseMove(UINT nFlags, CPoint point)
{
LPRECT lpRect=new RECT;
m_Static.GetWindowRect(lpRect);
ScreenToClient(lpRect);
if(point.x<lpRect->right && point.x>lpRect->left && point.y<lpRect->bottom && point.y>lpRect->top)
{
POINTS points;
::PostMessage(m_Static.m_hWnd,WM_MOUSEMOVE,NULL,(LPARAM)&points);
}
CDialog::OnMouseMove(nFlags, point);
}
方法二:
设置static控件的属性为notify
static控件就可以获取消息了
void CXXStatic::PreSubclassWindow()
{
// TODO: Add your specialized code here and/or call the base class
DWORD dwStyle = GetStyle();
::SetWindowLong(GetSafeHwnd(), GWL_STYLE, dwStyle | SS_NOTIFY);
CStatic::PreSubclassWindow();
}
相关文章推荐
- 如何让自定义的基于CStatic的控件响应鼠标移动的消息
- 一个SDI程序基于CFormView视。上面放一个CStatic控件,给视图添加双击消息,运行程序后,双击视图,会有弹出消息响应。 但是双击CStatic类控件,却没有响应
- MFC中如何让一个CStatic控件响应消息
- MFC中如何让一个CStatic控件响应消息
- 如何使得OCX控件能响应PreTranslateMessage消息?
- 如何使得OCX控件能响应PreTranslateMessage消息?
- C++Builder如何响应消息及自定义消息
- 请问如何响应TreeCtrl控件消息?利用ON_NOTIFY
- 如何在.Net下控件不响应鼠标滚轮动作
- C++如何通过一个响应事件接受多个控件消息
- MFC如何自定义消息与在线程中向主窗体控件发送数据
- C++自定义ClistCtrl控件响应数据项的点击事件&&消息反射的原理
- 自定义wxStaticBitmap的鼠标移动事件(或消息)
- 用户如何在VC中自定义消息以及响应该消息
- 带复选框的树控件中如何添加响应复选框的消息
- SysListView32控件响应鼠标单击消息
- 在vc中使用MapX时,如何在视图类中响应鼠标消息
- [转载]SysListView32控件响应鼠标单击消息
- 如何在MDI客户区窗口响应鼠标双击消息?
- 对话框中添加控件时,CMyDialog类中并没有CButton类的对象,却可以响应鼠标消息,为什么?