C++でMFCを使用して三角形を描画する方法は何ですか?

MFCを使用して三角形を描画する際には、CWndクラスのOnPaint関数をオーバーライドすることで実現できます。具体的な手順は以下の通りです。

最初に、MFCアプリケーションを作成し、その中にCWndクラスから派生したクラスを追加します。

CWndクラスのヘッダファイルに以下のコードを追加してください。

class CTriangleWnd : public CWnd
{
public:
    CTriangleWnd();
    virtual ~CTriangleWnd();

protected:
    DECLARE_MESSAGE_MAP()
    afx_msg void OnPaint();
};

CWndクラスの実装ファイルに以下のコードを追加してください。

BEGIN_MESSAGE_MAP(CTriangleWnd, CWnd)
    ON_WM_PAINT()
END_MESSAGE_MAP()

CTriangleWnd::CTriangleWnd()
{
}

CTriangleWnd::~CTriangleWnd()
{
}

void CTriangleWnd::OnPaint()
{
    CPaintDC dc(this);

    // 绘制三角形
    POINT points[3];
    points[0] = { 100, 100 };
    points[1] = { 150, 200 };
    points[2] = { 50, 200 };

    dc.Polygon(points, 3);
}

4、主窗口クラスでCTriangleWndオブジェクトを作成して表示する。

BOOL CMyApp::InitInstance()
{
    // 创建主窗口
    CMainFrame* pFrame = new CMainFrame;
    m_pMainWnd = pFrame;

    // 创建三角形窗口
    CTriangleWnd* pTriangleWnd = new CTriangleWnd;
    pTriangleWnd->Create(NULL, _T("Triangle Window"), WS_VISIBLE | WS_OVERLAPPEDWINDOW, CRect(0, 0, 300, 300), pFrame);

    // 显示主窗口
    pFrame->ShowWindow(SW_SHOW);
    pFrame->UpdateWindow();

    return TRUE;
}

以上の手順を経て、MFCアプリケーションでCWndクラスを使用してシンプルな三角形を描画することができます。

bannerAds