游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1772|回复: 3

在DirectDraw的窗口模式下如何在客户区随机填充像素?

[复制链接]

15

主题

90

帖子

90

积分

注册会员

Rank: 2

积分
90
发表于 2006-1-14 15:01:00 | 显示全部楼层 |阅读模式
我用的方式是:
用GetWindowRect取得整个窗口然后减去标题栏的大约23个像素,
以及左右下三个边框的各三个像素!(这种方法无法在WIN2000和WIN XP下都运行的很好! 因为WIN2000的标题栏大概是23像素,WIN XP的标题栏大概是30像素~~)

还有一种方法可以很精确但是比较麻烦

有什么好的方法能让我精确的在客户区中进行操作?

另外当窗口最小化的时候程序还继续在原先窗口停留的那个区域继续工作~汗  如何解决?

7

主题

67

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2006-1-15 19:35:00 | 显示全部楼层

Re:在DirectDraw的窗口模式下如何在客户区随机填充像素?

哎~你应该好好补习一下windows下的API了。

用GetSystemMetrics函数,可以获得你要的这些信息
GetSystemMetrics(SM_CXSIZEFRAME); //获取窗口的X轴边框宽度
GetSystemMetrics(SM_CYSIZEFRAME); //获取窗口的Y轴边框宽度
GetSystemMetrics(SM_CYCAPTION);//获取窗口的标题栏高度

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2006-1-15 21:25:00 | 显示全部楼层

Re:在DirectDraw的窗口模式下如何在客户区随机填充像素?

对于后面那个问题,可以定义一个是否激活的标志,未被激活的情况下就不做画面更新;是否激活的标志变量在 WA_ACTIVE 消息里改变。关于这个,很多入门文都有提到。

15

主题

90

帖子

90

积分

注册会员

Rank: 2

积分
90
 楼主| 发表于 2006-1-16 13:06:00 | 显示全部楼层

Re:在DirectDraw的窗口模式下如何在客户区随机填充像素?

谢谢2楼三楼
很好的解决方法

我已经下了windows API大全了~呵呵
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 06:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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