对话框OnInitDialog()中加入的加入位图代码
显示在CStatic控件上
InvalidateRect(&rect)
UpdateWindow(); 
加上也不管用,请问这是为什么呢?

解决方案 »

  1.   

    重载OnPoint函数,把Blt写在重载的函数里。
      

  2.   

    不要在initdialog裡做, 在OnDraw裡畫。
    一般做圖都要在OnDraw(),或OnPaint()裡做的。因為每次需要重畫的時候都會調用這幾個函數的。
      

  3.   

    m_pic.SetBitmap(m_FileName);
    就这么简单
    m_pic是CStatic派生类CBitmapPicture对象,SetBitmap(m_FileName)在CBitmapPicture中定义,设置位图显示。
    m_FileName为位图文件名,对话框类包含的CString对象
    以上代码在OnInitDialog() 中,别的程序就这样做的可以啊
    奇怪了
      

  4.   

    你调用UpdateWindow()函数,会引发WM_PAINT消息,从而调用OnPaint()/OnDraw()函数,重绘窗口,当然会一闪就不见了,
    你要在OnDraw()或OnPaint()函数里添加相应的BitBlt代码