GDI+问题求助,关于对话框的OnPaint

gscool 2007-03-23 10:40:44
问题是这样的:我用GDI+显示一个图片,对话框启动的时候在CDialog的OnInitDialog()的时候把图片显示出来,但是必须在OnPaint把图片重画一次,否则的话图片显示不出来。
有没有什么办法不在OnPaint里面添加任何代码就能让图片正常显示的?
...全文
362 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqwwing 2007-03-25
  • 打赏
  • 举报
回复
窗口建立后会自动调用一次OnPaint,所以之前画上的图片会被刷掉。不在OnPaint内加任何代码就可以在程序启动时显示图像,不知道LZ为什么会有奇怪这样的要求,因为如果绘图代码不在OnPaint中,就算开始的时候画上了,之后窗口如果被遮挡或者被移动等会产生WM_PAINT消息的时候,图像就被刷掉,难道你的目的是只在程序启动时显示一下图像,之后就没用了吗?这样的话楼上有大侠说用Timer可以考虑一下,只要设定好时间间隔,让它在程序调用OnPaint之后调用,可以在启动时显示图像。还有一个变通的方法是用CSplashWnd类,也就是闪屏类,帮你在程序启动时显示图像,当然只能显示一段时间。
双杯献酒 2007-03-25
  • 打赏
  • 举报
回复
既然是显示,当然应该在OnPaint
gscool 2007-03-24
  • 打赏
  • 举报
回复
up
xlzxlich 2007-03-23
  • 打赏
  • 举报
回复
OnInitDialog()对话框还没创建完毕。
你可以试试 放到 OnShowWindow
gscool 2007-03-23
  • 打赏
  • 举报
回复
还没人?
自己再次顶了!
gscool 2007-03-23
  • 打赏
  • 举报
回复
再次UP
gscool 2007-03-23
  • 打赏
  • 举报
回复
自己up一下
gscool 2007-03-23
  • 打赏
  • 举报
回复
up
jun_01 2007-03-23
  • 打赏
  • 举报
回复
1,在绘制背景的时候画图
2,也可以试试:放一个和对话框一样大的picture控件(就是那个特殊的static),把图片做出资源,直接设计时改属性即可
gscool 2007-03-23
  • 打赏
  • 举报
回复
OnShowWindow也不行,试了,必须OnPaint里面也写上才行
hanjk 2007-03-23
  • 打赏
  • 举报
回复
放到OnTimer里行不行啊?
zqche 2007-03-23
  • 打赏
  • 举报
回复
CDialog的OnInitDialog()的时候把图片显示出来???
如何显示??对话框还没显示呢。。
同意楼上。。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧