在MFC Dialog-Based中绘制简单矩形

时间:2011-07-09 05:34:19

标签: visual-studio-2010 visual-c++ mfc dialogbasedapp

我写了这段代码在对话框中绘制一个简单的矩形,我还在我的消息映射中添加了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();
    }
}

2 个答案:

答案 0 :(得分:5)

看起来你的油漆代码只在窗口是标志性的时候运行?你为什么这样做?

在致电else之后,将其放入CDialogEx::OnPaint()区块。

答案 1 :(得分:0)

你的第一个也是最大的错误就是试图直接在对话框中画画。虽然 可能会这样做,但这几乎总是一个坏主意。通常应将对话框视为控件的容器。