问题是这样的:我用GDI+显示一个图片,对话框启动的时候在CDialog的OnInitDialog()的时候把图片显示出来,但是必须在OnPaint把图片重画一次,否则的话图片显示不出来。
有没有什么办法不在OnPaint里面添加任何代码就能让图片正常显示的?

解决方案 »

  1.   

    OnInitDialog()对话框还没创建完毕。
    你可以试试 放到 OnShowWindow
      

  2.   

    CDialog的OnInitDialog()的时候把图片显示出来???
    如何显示??对话框还没显示呢。。
    同意楼上。。
      

  3.   

    OnShowWindow也不行,试了,必须OnPaint里面也写上才行
      

  4.   

    1,在绘制背景的时候画图
    2,也可以试试:放一个和对话框一样大的picture控件(就是那个特殊的static),把图片做出资源,直接设计时改属性即可
      

  5.   

    既然是显示,当然应该在OnPaint
      

  6.   

    窗口建立后会自动调用一次OnPaint,所以之前画上的图片会被刷掉。不在OnPaint内加任何代码就可以在程序启动时显示图像,不知道LZ为什么会有奇怪这样的要求,因为如果绘图代码不在OnPaint中,就算开始的时候画上了,之后窗口如果被遮挡或者被移动等会产生WM_PAINT消息的时候,图像就被刷掉,难道你的目的是只在程序启动时显示一下图像,之后就没用了吗?这样的话楼上有大侠说用Timer可以考虑一下,只要设定好时间间隔,让它在程序调用OnPaint之后调用,可以在启动时显示图像。还有一个变通的方法是用CSplashWnd类,也就是闪屏类,帮你在程序启动时显示图像,当然只能显示一段时间。