0

Static Control をダブルクリックすると、Static Control でマウスの位置に楕円が描画されます。(MFC); しかし、それは次のように見えます: 驚いた

そして私のコード:

void 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 メソッドを上書きする必要があります。

次に、イベント キャッチャーから、楕円を描画する必要があることと場所 (たとえば、2 つのメンバー変数: bool m_bDraw / CPoint m_DrawingPoint) をスタティックに伝え、スタティックで Invalidate を呼び出す必要があります。

于 2012-05-22T09:18:58.537 に答える