0

当我在静态控件中双击时,我将在静态控件中的鼠标位置绘制椭圆。(MFC);但是,看起来: 吃惊

我的代码:

无效 CTreeShowLabel::OnLButtonDblClk(UINT nFlags, CPoint 点)

{

//设置画笔

COLORREF 黑色 = 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);

}

关于圈子是可怕的。

4

1 回答 1

0

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

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

于 2012-05-22T09:18:58.537 回答