游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2977|回复: 5

大家一定要帮帮我啊。

[复制链接]

4

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2003-11-26 10:29:00 | 显示全部楼层 |阅读模式
我用DDraw做了个窗口模式下的飞机游戏,其他运行都正常,就是当最小化后lpDDSPrimary->Blt()函数返回DDERR_INVALIDRECT的错误。
大家帮我。

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20468
发表于 2003-11-26 10:32:00 | 显示全部楼层

Re:大家一定要帮帮我啊。

你试试错误的时候对表面进行
lpDDSPrimary->Restore();

4

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
 楼主| 发表于 2003-11-26 10:57:00 | 显示全部楼层

Re:大家一定要帮帮我啊。

首先,函数返回的错误信息是DDERR_INVALIDRECT而不是
DDERR_SURFACELOST
其次,我的代码中已有如下语句
if(rval == DDERR_SURFACELOST)  lpDDSFront->Restore();

4

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
 楼主| 发表于 2003-11-26 11:08:00 | 显示全部楼层

Re:大家一定要帮帮我啊。

首先,函数返回的错误信息是DDERR_INVALIDRECT而不是
DDERR_SURFACELOST
其次,我的代码中已有如下语句
if(rval == DDERR_SURFACELOST)  lpDDSFront->Restore();

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20468
发表于 2003-11-26 11:27:00 | 显示全部楼层

Re:大家一定要帮帮我啊。

DDERR_INVALIDRECT
    The provided rectangle was invalid.

DX7的官方帮助信息,可能是因为你把窗口最小化,导致你的RECT计算的最终值是一个非法值,你可以跟踪一下代码执行情况,另外,在窗口最小的时候最好不要再处理屏幕刷新,这样也可以节省系统资源。

4

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
 楼主| 发表于 2003-11-26 13:12:00 | 显示全部楼层

Re:大家一定要帮帮我啊。

想知如何判断当前程序窗口是否处于最小化?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-24 06:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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