映射WM_PAINT消息。在OnPaint函数中画图。如果嫌屏幕闪烁,再映射WM_ERASEBKGND消息,在OnEraseBkgnd函数中直接返回TURE就可以了

解决方案 »

  1.   

    在OnPaint()函数中画图
    找好你要画图的对话框中的区域,直接用dc画
      

  2.   

    可以直接用MFC的CDC * pDC,pDC->...
    调用那些函数就可以直接在对话框画了。
      

  3.   

    比如我的对话框中有个按钮控件ID号为IDC_BUTTON,我想在按钮上画椭圆.写了如下代码为什么不能达到目的/???
    void CChap732Dlg::OnPaint() 
    {
    if (IsIconic())
    {
    CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (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 = (rect.Width() - cxIcon + 1) / 2;
    int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon
    dc.DrawIcon(x, y, m_hIcon);
            
             CButton *pWnd=(CButton*)GetDlgItem(IDC_BUTTON);         
             pWnd->GetClientRect(rect);
             CDC *pDC=pWnd->GetDC();
             pDC->Ellipse(rect); }
    else
    {
    CDialog::OnPaint();
    }
    }
      

  4.   

    应该不难吧,和在SDI下应该是差不多的.
      

  5.   

    在按钮上画椭圆,可以先在资源位图里画出一幅位图,然后在按钮上直接回载位图即可,方便快捷。
    m_hBitmap = ::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAPDL));
        m_btn.SetBitmap(m_hBitmap);
      

  6.   

    看看windows程序设计   图形基础一章