获取光标位置 并将其位置映射为上一博客中picture控件的逻辑坐标
2009-10-13 17:09
429 查看
一):
获取光标位置 可用 GetCursorPos(&pt)函数
此函数的参数 为保存光标位置信息的指针,此指针指向一个CPoint 类型
具体如下:
CPoint pt;
GetCursorPos(&pt);
二): 此时,获得的鼠标为屏幕坐标,我们首先将其转换为客户坐标
ScreenToClient(&pt);
此时,pt为鼠标相对于对话框客户区的坐标
三): 将其转换为picture控件逻辑坐标
首先,获取picture控件的客户坐标,用来对鼠标坐标做转换比较
CRect rect;
CWnd *pwn=GetDlgItem(IDC_SHOW);
pwn->GetWindowRect(&rect);
ScreenToClient(rect);
然后,进行坐标转换,将鼠标位置与picture原点位置做比较,进而将鼠标位置映射为picture控件逻辑坐标
pt.x=(LONG)(((double)(pt.x-rect.left))/rect.Width()*cx); // cx为逻辑坐标x方向范围
pt.y=-(LONG)(((double)(pt.y-rect.bottom))/rect.Height()*cy); // 注意 前面有个负号, 因为逻辑坐标的y方向是向上的 客户坐标方向相反
这样就成功的将鼠标坐标pt转换为了picture控件的逻辑坐标:>
获取光标位置 可用 GetCursorPos(&pt)函数
此函数的参数 为保存光标位置信息的指针,此指针指向一个CPoint 类型
具体如下:
CPoint pt;
GetCursorPos(&pt);
二): 此时,获得的鼠标为屏幕坐标,我们首先将其转换为客户坐标
ScreenToClient(&pt);
此时,pt为鼠标相对于对话框客户区的坐标
三): 将其转换为picture控件逻辑坐标
首先,获取picture控件的客户坐标,用来对鼠标坐标做转换比较
CRect rect;
CWnd *pwn=GetDlgItem(IDC_SHOW);
pwn->GetWindowRect(&rect);
ScreenToClient(rect);
然后,进行坐标转换,将鼠标位置与picture原点位置做比较,进而将鼠标位置映射为picture控件逻辑坐标
pt.x=(LONG)(((double)(pt.x-rect.left))/rect.Width()*cx); // cx为逻辑坐标x方向范围
pt.y=-(LONG)(((double)(pt.y-rect.bottom))/rect.Height()*cy); // 注意 前面有个负号, 因为逻辑坐标的y方向是向上的 客户坐标方向相反
这样就成功的将鼠标坐标pt转换为了picture控件的逻辑坐标:>
相关文章推荐
- MFC 获取picture控件的鼠标点击坐标位置的方法
- MFC 获取picture控件的鼠标点击坐标位置的方法
- MFC 获取picture控件的鼠标点击坐标位置的方法(PreTranslateMessag)
- 补5-22博客 获取点击坐标并将控件移动到点击位置
- MFC 获取picture控件的鼠标点击坐标位置的方法
- 将picture控件坐标 映射为逻辑坐标1000×1000
- 如何获取控件在窗体上的位置坐标和大小值
- Silverlight如何获取控件的屏幕坐标位置
- 实现在Picture控件中获取鼠标位置
- MFC对话框应用程序 如何在对话框窗口显示前获取窗口(控件)的屏幕坐标位置
- Android 获取控件的坐标位置
- 用 javascript 获取鼠标(光标)的坐标位置 兼容IE/Firefox等浏览器
- iOS 获取控件相对屏幕的坐标位置
- DIV弹出层练习(二) ------------------现有一层div想获取鼠标的光标位置并作为这个层的坐标显示出这个层
- Qt获取控件位置,坐标总结
- Qt获取控件位置坐标详解
- 获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
- android 获取控件坐标/位置不显示问题
- Android获取控件坐标为0的原因及取得控件位置和两控件距离的方法
- Android获取控件位置坐标,屏幕尺寸,标题栏,状态栏高度