获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
2010-07-29 02:04
741 查看
获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
1. 题目
获取鼠标在Picture
控件中的坐标,并显示到对话框的状态栏中
2.
关键知识点
1)
对话框客户区的概念;
对话框客户区不包括状态栏。
2)
ScreenToClient的作用;
ScreenToClient将获取的屏幕坐标转换成相对客户区的坐标。
3.
我的代码
view plain
copy to clipboard
?
/******************************************************************
*功能:获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
*
*2010-04-10,by Li Chengyu
******************************************************************/
void
CGetDlgWndDlg::OnMouseMove(
UINT
nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CRect rect_ctr;
(this
->GetDlgItem(IDC_STATIC))->GetWindowRect(&rect_ctr);
//获取Picture控件相对屏幕左上角的坐标,
//存储到rect_ctr中
// CRect rect_dlg;
// this->GetWindowRect(&rect_dlg);//获取对话框相对屏幕左上角的坐标,存储到rect_dlg中
//***************** test ***********************************
//Picture控件左上角相对对话框客户区左上角的坐标
// ScreenToClient(rect_ctr);//这里的客户区不包括对话框的状态栏
// point.x = rect_ctr.left;//
// point.y = rect_ctr.top;
//***************** test ***********************************
//对话框窗口左上角相对对话框客户区左上角的坐标
// ScreenToClient(rect_dlg);//这里的客户区不包括对话框的状态栏
// point.x = rect_dlg.left;
// point.y = rect_dlg.top;
ScreenToClient(rect_ctr);//获取Picture控件相对对话框客户区左上角的坐标
point.x -= rect_ctr.left;//point获取的是鼠标相对对话框客户区左上角的坐标,减去rect_ctr.left和
point.y -= rect_ctr.top;//rect_ctr.top后,即为鼠标相对Picture控件左上角的坐标
//获取状态栏上的文字,并将鼠标的坐标显示在状态栏上
char
szString[100]={0};
char
szText[512];
HWND
hWnd = ::GetActiveWindow();
::GetWindowText(hWnd,szText,200);
memset(szText+strlen(szText),' '
,20);
//如果鼠标位于Picture控件之外,在对话框状态栏上不显示其坐标
if
( point.x>(rect_ctr.right-rect_ctr.left) || point.y>(rect_ctr.bottom-rect_ctr.top )
|| point.x<0 || point.y<0 )
;
else
sprintf(szString,"(%4i,%4i)"
,point.x,point.y);
//将鼠标坐标显示到对话框状态栏上
// sprintf(szString,"(%4i,%4i)",point.x,point.y);
strcpy(szText+20,szString);
::SetWindowText(hWnd,szText);
CDialog::OnMouseMove(nFlags, point);
}
来自http://blog.csdn.net/lichengyu/archive/2010/04/10/5470864.aspx
相关文章推荐
- 获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
- 获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
- MFC对话框应用程序 如何在对话框窗口显示前获取窗口(控件)的屏幕坐标位置
- MFC 获取picture控件的鼠标点击坐标位置的方法
- MFC 获取picture控件的鼠标点击坐标位置的方法
- MFC 获取picture控件的鼠标点击坐标位置的方法
- MFC 获取picture控件的鼠标点击坐标位置的方法(PreTranslateMessag)
- MFC对话框应用程序 如何在对话框窗口显示前获取窗口(控件)的屏幕坐标位置
- H5学习之6 获取鼠标坐标值并且显示其值
- DIV弹出层练习(二) ------------------现有一层div想获取鼠标的光标位置并作为这个层的坐标显示出这个层
- MFC:在状态栏最左边显示鼠标当前的坐标
- javascript实时获取鼠标坐标值并显示的方法
- 002--VS C++ 获取鼠标坐标并显示在窗口上
- MFC/VS 2010中对话框控件初始显示模糊,鼠标移动到上面才显示的问题
- 随鼠标移动在状态栏显示地图坐标(转载)
- 用CImage在picture控件上显示外部图片,并获取各像素颜色数据
- android获取自己定义控件位置坐标,屏幕尺寸,标题栏,状态栏高度
- MFC 显示对话框内鼠标单击点的坐标值
- MFC 基于对话框的图片控件(picture)动态加载.bmp图片并显示
- MFC对话框的picture控件中显示IplImage*格式图像