关于静态控制中的绘制椭圆(MFC)

时间:2012-05-22 08:54:26

标签: mfc draw ellipse

当我在静态控件中双击时,我将在静态控件中的鼠标位置绘制椭圆。(MFC); 但是,它表明: suprised

我的代码:

void CTreeShowLabel :: OnLButtonDblClk(UINT nFlags,CPoint point)

{

//设置画笔

COLORREF black = RGB(255,0,0);

CPen笔(PS_SOLID,1,黑色);

CClientDC Dc(GetDlgItem(IDC_TREESTATIC));

Dc.SelectObject(笔);

//在鼠标处画图
CPoint curPos;
GetCursorPos(&curPos);

CPoint point1(0,0);
point1.x = curPos.x - 50;
point1.y = curPos.y - 50;

CPoint point2(0,0);
point2.x = curPos.x + 50;
point2.y = curPos.y + 50;

    //画圆
Dc.Ellipse(CRect(point1, point2));
CStatic::OnLButtonDblClk(nFlags, point);

}

关于Circle很糟糕。

1 个答案:

答案 0 :(得分:0)

在OnLButtonDblClk事件捕获器中绘制椭圆似乎不太好。您应该创建自己的派生自CStatic的类并覆盖OnPaint方法。

然后从事件捕获器中你应该告诉静态它必须绘制椭圆和where(例如两个成员变量:bool m_bDraw / CPoint m_DrawingPoint)并在静态中调用Invalidate。