MFC PictureCtrl中有一张图片。用户用鼠标左键单击了PictureCtrl中两个不同的位置。记录两次单击的坐标,并计算这两个点之间的距离
时间: 2024-02-17 18:00:53 浏览: 83
在MFC中,可以通过以下步骤记录用户在PictureCtrl中单击的两个点,并计算这两个点之间的距离:
1. 在PictureCtrl控件中添加消息响应函数,例如OnLButtonDown()函数。
2. 在OnLButtonDown()函数中,记录鼠标点击的坐标位置,例如:
```cpp
static CPoint point1, point2;
if (point1 == CPoint(0, 0)) {
point1 = point;
}
else {
point2 = point;
}
```
3. 如果已经记录了两个点,就可以计算这两个点之间的距离,例如:
```cpp
if (point1 != CPoint(0, 0) && point2 != CPoint(0, 0)) {
double distance = sqrt(pow((point1.x - point2.x), 2) + pow((point1.y - point2.y), 2));
CString str;
str.Format(_T("Distance: %.2f"), distance);
AfxMessageBox(str);
point1 = CPoint(0, 0);
point2 = CPoint(0, 0);
}
```
这样,就可以记录用户在PictureCtrl中单击的两个点,并计算这两个点之间的距离了。需要注意的是,这里使用的是欧几里得距离计算公式。
相关问题
MFC,用户单击PictureCtrl时,记录单击位置的坐标到CPoint first中
您可以在PictureCtrl的WM_LBUTTONDOWN消息处理函数中添加以下代码,将单击位置的坐标记录到CPoint first中:
```
void CPictureCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
CWnd::OnLButtonDown(nFlags, point);
// 将单击位置的坐标记录到CPoint first中
first = point;
}
```
其中,CPoint first需要在类的头文件中声明为成员变量。
MFC,对话框中有一个pictureCtrl控件,当用户单击pictureCtrl控件后,记录在pictureCtrl中的坐标
可以通过响应pictureCtrl的鼠标单击事件来记录坐标。具体的做法是在控件类中添加WM_LBUTTONDOWN消息的响应函数,当控件接收到鼠标单击事件时,在响应函数中获取鼠标单击时的坐标。代码示例:
```c++
void CPictureCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
CWnd::OnLButtonDown(nFlags, point);
// 将客户区坐标转换为屏幕坐标
ClientToScreen(&point);
// 记录坐标
m_clickPos = point;
}
```
其中,m_clickPos是一个成员变量,用于记录鼠标单击时的坐标。在控件类的头文件中定义:
```c++
class CPictureCtrl : public CStatic
{
public:
// ...
CPoint m_clickPos; // 记录鼠标单击时的坐标
};
```
阅读全文
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)