游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3449|回复: 4

关于改变窗口Size大小产生闪烁的问题。

[复制链接]

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20381
发表于 2003-9-29 16:43:00 | 显示全部楼层 |阅读模式
我的程式在DDraw模式下执行,一旦改变了窗口大小,窗口会产生闪烁,估计是因为窗口在刷新上与DDraw的刷新没有同步或者缺少相关处理。

具体操作:
我对WM_SIZE和WM_PAINT系统消息都进行响应处理,同时重绘了DDraw窗口,这时候窗口会发生闪烁。

除了这两条系统消息外,关系到Size改变刷新的系统消息还有哪些?不知道谁能帮忙解答一下。在此先谢过! [em10]

2

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2003-9-30 10:02:00 | 显示全部楼层

Re:关于改变窗口Size大小产生闪烁的问题。

"当 窗 口 需 要 重 画 时,Windows 会 自 动 先 发 送WM_ERASEBKGND, 而 缺 省 的 处 理 函 数 使 用 白 色 的 背 景 刷。 当OpenGL 使 用 的 背 景 颜 色 不 是 白 色 时, 作 图 时 有 一 帧 白 色 的 闪 烁。 这 种 现 象 在 做 动 画 时 特 别 明 显。 程 序 中 只 需 要 在WM_ERASEBKGND 的 消 息 处 理 函 数 中 禁 止 父 窗 口 类 的 消 息 处 理, 简 单 的 返 回 一 个TRUE "

a common case

1

主题

56

帖子

56

积分

注册会员

Rank: 2

积分
56
QQ
发表于 2003-9-30 11:45:00 | 显示全部楼层

Re: 关于改变窗口Size大小产生闪烁的问题。

重载WM_ERASEBKGND,屏蔽里面的原有调用,直接返回。
此外,WM_SIZE中不要绘制窗口,调用WM_PAINT来绘制
就好,InvalidateRect(NULL)。 [em5]

90

主题

797

帖子

833

积分

高级会员

论坛版主

Rank: 4

积分
833
QQ
发表于 2003-9-30 12:32:00 | 显示全部楼层

Re:关于改变窗口Size大小产生闪烁的问题。

真是厉害!!
  i服了u!!!

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20381
 楼主| 发表于 2003-9-30 12:32:00 | 显示全部楼层

Re: 关于改变窗口Size大小产生闪烁的问题。

so good!  问题解决。

多谢楼上的两位! [em3]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-11-29 10:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表