关于CMainFrame的鼠标响应
来源:互联网 发布:淘宝虚拟交易 编辑:程序博客网 时间:2024/04/29 17:30
今天碰到一个在工具栏处添加坐标显示鼠标当前位置的小问题。
前辈留下的代码的处理方式,是把Cmainframe中的工具栏权限直接改成了public,而后在CView中的Mousemove添加编辑。很直接的方法,我却觉得更改MFC代码的方式不大合适。
在网上查找了一些资料。发现如下:
1.Cmainframe确实是完全可以相应鼠标事件的。例如在View下重写showwindow,
用ShowWindow(SW_MINIMIZE)将view最小化,此时Cmainframe可以捕捉并响应鼠标的各种消息。
2.见到一些人以空白的工具栏处不能响应Cmainframe的鼠标消息为由,而断定Cmainframe不能响应鼠标事件。看来关于工具栏处对于鼠标事件的处理,还需要研究。
最终我的解决方式是在CView下重载了Cmainframe中的mousemove消息,并用sendmessage发送给Cmainframe。
代码如下:
void CMainFrame::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CString str;
CMainFrame *pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CStatusBar *pStatus=&pFrame->m_wndStatusBar;
if(pStatus)
{
str.Format(_T("%d,%d"),point.x,point.y);
pStatus->SetPaneText(2,str);
}
CFrameWnd::OnMouseMove(nFlags, point);
}
void CTestView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CWnd *p = GetParent();
p->SendMessage(WM_MOUSEMOVE,0,MAKELPARAM(point.x,point.y) );
}
- 关于CMainFrame的鼠标响应
- 关于matlab鼠标响应
- C#关于鼠标移动到 标题栏的响应操作
- 关于浏览器响应鼠标各个按键的问题
- 鼠标事件的响应
- 鼠标的响应
- 关于opencv2中鼠标响应操作
- MFC的鼠标事件响应
- [VC] 鼠标事件的响应
- 鼠标的几种响应
- 关于为cwnd增加鼠标双击的响应需要注意的
- 关于flex,group中graphics.clear()导致的mouseMove等鼠标响应失效的问题
- 关于Ubuntu系统笔记本在电池模式下鼠标等外设失去响应的解决办法
- 响应鼠标
- 鼠标响应
- 鼠标响应
- 单文档程序如何在CMainFrame类和CView类同时响应同一个菜单单击的消息函数
- 一个响应鼠标移动的简单实例!
- 宏和常量
- 会议内容
- Linux下的Java配置
- 继续摘抄:将Ubuntu 9.04的DVD光盘作为软件源
- swish-e代码分析,索引部分(3)
- 关于CMainFrame的鼠标响应
- [转]window xp IIS的配置(2)
- STL概述
- zoj 1975
- 英语不好,能学编程吗
- 冒泡法,改进冒泡法排序和反序算法
- 多路复用与设置阻塞、非阻塞模式
- Hibernate之简单过源码
- POJ 2002 hash(枚举+哈希) 或者 枚举+二分