文件为:DrawLineView.h 和 DrawLineView.cpp
以下是步骤
void CDrawLineView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
pStart = point;
CView::OnLButtonDown(nFlags, point);
}
void CDrawLineView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
pEnd = point;
CDC* pDC = GetDC();
pDC->MoveTo(pStart);
pDC->LineTo(pEnd);
ReleaseDC(pDC);
CView::OnLButtonUp(nFlags, point);
}
运行程序,使用鼠标左键点击滑动即可画线
画矩形
OnLButtonDown 函数不变
void CDrawLineView::OnLButtonUp(UINT nFlags, CPoint point)
{
// 画矩形
pEnd = point;
CDC* pDC = GetDC();
CPen newPen;
// PS_SOLID代表实线, 3代表线的宽度, RGB是线的颜色
newPen.CreatePen(PS_SOLID, 3, RGB(255, 0, 0));
pDC->SelectObject(newPen);
// pStart为矩形的左上角的点,pEnd为矩形的右下角的点
pDC->Rectangle(CRect(pStart, pEnd));
ReleaseDC(pDC);
CView::OnLButtonUp(nFlags, point);
}
画椭圆
OnLButtonDown 函数不变
void CDrawLineView::OnLButtonUp(UINT nFlags, CPoint point)
{
// 画椭圆
pEnd = point;
CDC* pDC = GetDC();
CPen newPen;
// PS_SOLID代表实线, 3代表线的宽度, RGB是线的颜色
newPen.CreatePen(PS_SOLID, 3, RGB(255, 0, 0));
pDC->SelectObject(newPen);
pDC->Ellipse(CRect(pStart, pEnd));
ReleaseDC(pDC);
CView::OnLButtonUp(nFlags, point);
}
// 填充椭圆
pEnd = point;
CDC* pDC = GetDC();
CPen newPen;
// PS_SOLID代表实线, 3代表线的宽度, RGB是线的颜色
newPen.CreatePen(PS_SOLID, 3, RGB( 0, 255, 0));
pDC->SelectObject(newPen);
CBrush newBrush;
newBrush.CreateSolidBrush(RGB(255, 0, 0));
pDC->SelectObject(&newBrush);
pDC->Ellipse(CRect(pStart, pEnd));
newPen.DeleteObject();
newBrush.DeleteObject();
ReleaseDC(pDC);
CView::OnLButtonUp(nFlags, point);
版权声明:本文为Redmoon955331原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。