在一个基于对话框的工程的一个static edit控件上画了一幅图,要对话框显示时就显示。我先把画图的函数写在OnInitDialog()中对话框显示时并没显视,现在我把画图的函数写在OnPaint()中 打开对话框时要把对话框托几下才能显示图。我要在对话框打开时就显示 那画图函数应该写在哪?请高手指导

解决方案 »

  1.   

    static edit 是哪个?如果标签(static) 是不能显示图片。只有在派生类中重载WM_PAINT才行。以后把图片传进去就行了。
      

  2.   

    你在OnInitDialog()里面调用一下Invalidate();试一下!!
      

  3.   

    我是先获得static控件的DC 然后再画图的我也在OnInitDialog()例加了Invalidate() 不行
      

  4.   

    可否把你在OnPaint()中的代码贴一下呢??
      

  5.   

    void CSDlg::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);
    }
    else
    {
    CDialog::OnPaint();
    }
           draw();//我就加了这一行 其他没改
    }