如何强制系统不绘制Dialog?(100分)

bbstudio 2006-02-10 04:42:29
我的目的是想隐藏原有的Dialog,但是不能用ShowWindow,因为我还要在这个Dialog上画图,最终的效果就好像是图片直接显示在桌面上一样
是不是要捕获WM_NCPAINT?我查了一下,基本上都是讲原理的,但是没有找到合式的例子,麻烦会的人指点一下
...全文
109 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zero_wq 2006-03-29
  • 打赏
  • 举报
回复
应该是UpdateLayeredWindow吧,这个函数能把对话框按png的格式画出来并保留原有的透明通道,用法见http://www.ccrun.com/article/go.asp?i=643&d=n5u8o4,只不过使用这个函数以后窗口就不再响应WM_PAINT事件了,所有的重绘操做都必须在其它事件上完成
tianhui212 2006-02-12
  • 打赏
  • 举报
回复
把对话框的标题栏去掉,图片绘为对话框的背景,再用SetLayeredWindowAttributes()设置对话框透明度就可以了。
菜牛 2006-02-11
  • 打赏
  • 举报
回复
可以用SetLayeredWindowAttributes()来设置对话框为透明的。
hq007 2006-02-11
  • 打赏
  • 举报
回复
问题我没看明白。
你说你想隐藏对话框(到底是什么情况下隐藏),
你又说你要在上面绘图(你是不是想写程序启动时的等待画面。。。)
bbstudio 2006-02-10
  • 打赏
  • 举报
回复
最终的显示效果就是像goodboyws(深夜不眠者)说的一样,但是这样绘图只能在最顶层,并且绘出来的图形不能响应像WM_PAINT消系
我说的方法就像junliu_0(驴子)说的那样,但是我绘制的图片是包含Alpha透明通道的,即使去掉标题框也是看的到对话框背景的
junliu_0 2006-02-10
  • 打赏
  • 举报
回复
你可以把对话框的标题栏去掉,然后图片绘为对话框的背景,
最终的效果就好像是图片直接显示在桌面上一样了!
huguyue6670 2006-02-10
  • 打赏
  • 举报
回复
绘出后你可以隐藏,和没有绘制是一样的,并且这样vc的一切动作东可响应,如消息等等
goodboyws 2006-02-10
  • 打赏
  • 举报
回复
没看明白,直接获取桌面DC不就可以了么

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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