游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2074|回复: 2

渲染与WM_TIMER的问题

[复制链接]

14

主题

28

帖子

45

积分

注册会员

Rank: 2

积分
45
发表于 2003-12-21 21:23:00 | 显示全部楼层 |阅读模式
我用vc.net d3d9
当在wm_paint里渲染时,要去掉vc生成的代码:
case WM_PAINT:
     rend();
    break;
可是,这样就不能收到wm_timer消息了。为什么?谢谢

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20468
发表于 2003-12-21 23:38:00 | 显示全部楼层

Re:渲染与WM_TIMER的问题

Windows的消息是放在一个队列里,WM_PAINT和WM_TIMER放在同样的队列,你在WM_PAINT跳转到rend()函式,必须等到rend()结束返回后,系统消息才能再继续处理下一条消息。

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2003-12-22 08:36:00 | 显示全部楼层

Re:渲染与WM_TIMER的问题

你如果是做游戏的话最好别把渲染部分放到WM_PAINT下面。
而且我发现,如果代码里保留了WM_PAINT,但又把下面的
hdc = BeginPaint(hWnd, &ps);

EndPaint(hWnd, &ps);
这两句去掉的话,程序就会不断的收到WM_PAINT消息,无穷无尽。恐怖啊!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-24 15:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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