Vc++6.0MFC中用鼠标画椭圆的实现过程
时间: 2023-08-22 15:09:39 浏览: 197
在VC++6.0 MFC中,可以通过以下步骤使用鼠标绘制椭圆:
1. 首先在你的窗口类中添加以下变量:
```
CPoint m_ptOrigin; // 椭圆的起始点
CPoint m_ptEnd; // 椭圆的结束点
BOOL m_bDrawing; // 是否正在绘制椭圆
```
2. 在窗口类的OnLButtonDown函数中添加以下代码:
```
void CMyWnd::OnLButtonDown(UINT nFlags, CPoint point)
{
m_ptOrigin = point;
m_ptEnd = point;
m_bDrawing = TRUE;
SetCapture(); // 捕获鼠标
}
```
3. 在窗口类的OnMouseMove函数中添加以下代码:
```
void CMyWnd::OnMouseMove(UINT nFlags, CPoint point)
{
if (m_bDrawing)
{
m_ptEnd = point;
// 强制重绘,实现实时预览
Invalidate();
}
}
```
4. 在窗口类的OnLButtonUp函数中添加以下代码:
```
void CMyWnd::OnLButtonUp(UINT nFlags, CPoint point)
{
m_bDrawing = FALSE;
ReleaseCapture(); // 释放鼠标
// 最终绘制椭圆
CDC* pDC = GetDC();
pDC->Ellipse(m_ptOrigin.x, m_ptOrigin.y, m_ptEnd.x, m_ptEnd.y);
ReleaseDC(pDC);
}
```
5. 最后,在窗口类的OnPaint函数中添加以下代码:
```
void CMyWnd::OnPaint()
{
CPaintDC dc(this);
if (m_bDrawing)
{
// 实时预览椭圆
dc.Ellipse(m_ptOrigin.x, m_ptOrigin.y, m_ptEnd.x, m_ptEnd.y);
}
}
```
这样,就可以通过鼠标绘制椭圆了。
阅读全文