MapX 控件 鼠标事件响应
来源:互联网 发布:windows游戏编程入门 编辑:程序博客网 时间:2024/06/05 05:54
用VC进行MapX二次开发时,鼠标消息(如单击,双击,移动等)被MapX屏蔽了,所以这时,为WM_MOUSEMOVE等消息添加处理函数时,这些函数并不会被调用。当又需要对这些消息添加处理函数时,通常的做法是把这些鼠标消息作为“事件”(当然是MapX的事件了),为这些事件添加事件处理函数。
(1)当将MapX.h和MapX.c文件添加到工程后,为MapX控件指定一个资源ID,如IDC_MAP。添加资源ID的方法是 VIEW-->RESOURCE SYMBOL,然后点击新建.. 。
(2)在视图文件的头文件(如ButtonView.h)中,找到DECLARE_MESSAGE_MAP(),在它下面添加DECLARE_EVENTSINK_MAP()。
(3)在视图类的实现文家ButtonView.cpp中,找到BEGIN_MESSAGE_MAP(CButtonView,CView)和END_MESSAGE_MAP(),在消息MAP下面添加事件MAP,
BEGIN_EVENTSINK_MAP(CButtonView, CView)
ON_EVENT(CButtonView, IDC_MAP, DISPID_MOUSEMOVE,
OnMouseMoveInMap,VTS_I2 VTS_I2 VTS_XPOS_PIXELS VTS_YPOS_PIXELS)
//鼠标移动
ON_EVENT(CButtonView, IDC_MAP, DISPID_MOUSEUP,
OnMouseUpInMap, VTS_I2 VTS_I2 VTS_XPOS_PIXELS VTS_YPOS_PIXELS)
//鼠标左键弹起
ON_EVENT(CButtonView, IDC_MAP,DISPID_DBLCLICK,
OnMouseDblC,VTS_NONE)
//鼠标双击
END_EVENTSINK_MAP()
(4)为视图类CButtonView分别添加鼠标事件处理函数void OnMouseMoveInMap(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y),void OnMouseUpInMap(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y) 和 void OnMouseDblC()。
(5)上面的x,y为光标的坐标,不难发现鼠标双击事件并不传送鼠标位置坐标。如果想在鼠标双击事件里获得鼠标坐标,可用函数GetCursorPos(),但它获得的坐标是屏幕坐标,如果想用MapX里的Map.ConverCoord()方法把坐标转换为经纬度,需要先用ScreenToClient()函数,把屏幕坐标转换为绘图区坐标。如下所示:
CPoint point;
GetCursorPos(&point);
ScreenToClient(&point);
float x=(float)point.x;
float y=(float)point.y;
double Mapx,Mapy;
m_controlMapx.ConvertCoord(&x,&y,&Mapx,&Mapy,miScreenToMap);
http://blog.csdn.net/zhaohongyu113/article/details/5587919
- MapX 控件 鼠标事件响应
- Static控件响应鼠标事件
- 组合控件的鼠标事件响应
- mfc picture控件响应鼠标右键事件
- VC STATIC控件响应鼠标点击事件
- 让Shockwave flash控件响应鼠标移动的事件
- 解决]VC:CDataGrid控件响应鼠标双击事件
- map控件中对鼠标滚轮事件的响应
- 控制WinForm控件上的键盘,鼠标事件响应
- 控件响应鼠标操作事件中,判断IsIdle()作用
- 继承MFC控件后怎么响应鼠标单双击事件
- OpenGL鼠标响应事件
- OpenCV--鼠标事件响应
- 鼠标事件的响应
- opencv鼠标响应事件
- 【win32】鼠标响应事件
- ScrollBox响应鼠标滚轮事件
- QT鼠标点击响应事件
- 金融帝国2(Capitalism2)完美中文版下载
- 一.最优化理论与算法学科介绍
- Ftp多线程与断点续传
- 把微信iOS版SDK中的静态 .a 文件合并成一个真正全兼容的静态文件
- OpenCV图像区域复制粘贴
- MapX 控件 鼠标事件响应
- 看多了要写代码了
- 【她的心你伤的起吗?】
- 人脸识别主要算法原理和公司
- WinForm小闹钟
- linux上安装JDK, Eclipse
- Android 属性总结
- css 笔记(一)
- mysql中的text,mediumtext,longtext在Hibernate中的类型映射