vs2022 mfc图像跟随鼠标移动
时间: 2023-08-07 21:06:59 浏览: 165
要实现MFC图像跟随鼠标移动,你可以在鼠标移动事件中获取鼠标坐标,并将该坐标传递给绘图函数,让它在该位置重新绘制图像。以下是一个示例代码:
1. 在你的对话框类中添加以下成员变量:
```c++
CPoint m_mousePos; // 鼠标坐标
CRect m_imageRect; // 图像区域
CBitmap m_bitmap; // 图像
```
2. 在OnInitDialog()函数中加载图像:
```c++
m_bitmap.LoadBitmap(IDB_BITMAP1); // 加载图像
m_imageRect.SetRect(0, 0, 100, 100); // 设置图像区域
```
3. 在鼠标移动事件中获取鼠标坐标,并调用Invalidate()函数触发重新绘制:
```c++
void CMyDialog::OnMouseMove(UINT nFlags, CPoint point)
{
// 获取鼠标坐标
m_mousePos = point;
// 重新绘制图像
Invalidate();
CDialogEx::OnMouseMove(nFlags, point);
}
```
4. 在OnPaint()函数中绘制图像:
```c++
void CMyDialog::OnPaint()
{
CPaintDC dc(this); // device context for painting
CDC memDC;
memDC.CreateCompatibleDC(&dc);
CBitmap* pOldBitmap = memDC.SelectObject(&m_bitmap);
// 将图像绘制在鼠标位置
dc.BitBlt(m_mousePos.x, m_mousePos.y, m_imageRect.Width(), m_imageRect.Height(), &memDC, 0, 0, SRCCOPY);
memDC.SelectObject(pOldBitmap);
}
```
这样,你的MFC图像就会随着鼠标移动了。
阅读全文