MFC,对话框有一个默认的PictureCtrl控件。用户单击后,判断鼠标位置是否在PictureCtrl范围内。如果在,则记录在该控件内的相对坐标(相对于左上角)
时间: 2024-02-24 22:54:04 浏览: 61
MFC鼠标位置提示框
3星 · 编辑精心推荐
您可以在控件的鼠标单击事件中添加以下代码来实现:
```
CPoint point;
GetCursorPos(&point); // 获取鼠标当前位置
ScreenToClient(&point); // 转换为控件内坐标
CRect rect;
GetDlgItem(IDC_PICTURE_CTRL)->GetWindowRect(&rect); // 获取控件的屏幕坐标范围
ScreenToClient(&rect); // 转换为控件内坐标范围
if (rect.PtInRect(point))
{
CPoint relativePoint = point - rect.TopLeft(); // 计算相对坐标
// 将相对坐标保存下来,可以用一个变量或者结构体来存储
}
```
其中,IDC_PICTURE_CTRL 是 PictureCtrl 控件的 ID。这段代码会先获取鼠标当前位置,然后转换为控件内坐标。接着,获取控件在屏幕上的坐标范围,并转换为控件内坐标范围。最后,判断鼠标位置是否在控件内,并计算相对坐标。您可以根据自己的需要对相对坐标进行处理。
阅读全文