簡體   English   中英

在 MFC 中基於對話框繪制簡單矩形

[英]draw simple rectangle in MFC Dialog-Based

我編寫了這段代碼來在對話框中繪制一個簡單的矩形,我還在我的消息 map 中添加了 ON_WM_PAINT()。 但它沒有在對話中向我顯示任何內容:如果有人能告訴我代碼中的錯誤,我真的很感激:

void Ctest4Dlg::OnPaint()
{
    if (IsIconic())
    {
        CPaintDC dc(this); // device context for painting
        // TODO: Add your message handler code here

        SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

        // Center icon in client rectangle
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);
        CRect rect;
        GetClientRect(&rect);
        int x = 2;
        int y = 2;

        // Draw the icon
        dc.DrawIcon(x, y, m_hIcon);

        //I want to draw a rectangle 
        dc.Rectangle(10,10,50,50);
    }
    else
    {
        CDialogEx::OnPaint();
    }
}

看起來您的繪畫代碼僅在 window 具有標志性時運行? 你為什么這樣做?

在調用CDialogEx::OnPaint()之后,將它放在else塊中。

您的第一個也是最大的錯誤是嘗試直接在對話框中繪圖。 雖然可以這樣做,但這幾乎總是一個壞主意。 對話框通常應被視為控件的容器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM