游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6054|回复: 8

怎样通过windows窗口客户区大小计算整个窗口大小?

[复制链接]

25

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
发表于 2005-2-22 04:53:00 | 显示全部楼层 |阅读模式
原来编程序都是用的默认,没有注意这个问题,今天自定义了一下。结果发现相对坐标不对劲了,在
hWnd=CreateWindow(...)中设置的是整个窗口的位置(也就是整个窗口的大小,包括了标题栏和边框)。。。。谢谢;

QQ群上问问题一般没人答。。。。。。唉。。。。发广告的倒多。

15

主题

1268

帖子

1268

积分

金牌会员

Rank: 6Rank: 6

积分
1268
发表于 2005-2-22 09:34:00 | 显示全部楼层

Re:怎样通过windows窗口客户区大小计算整个窗口大小?

有的,自己查看winapi

6

主题

17

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2005-2-22 13:17:00 | 显示全部楼层

Re:怎样通过windows窗口客户区大小计算整个窗口大小?

HWND hwnd = CreateWindowEx(...);
if (hwnd) {
RECT rect;
SetRect( &rect, xLeft, yTop, xRight, yBottom); // 指定Client区大小
AdjustWindowRectEx( &rect,                          // 根据Client的大小调整整个窗口
        GetWindowStyle( hwnd ),     
        GetMenu( hwnd ) != NULL,   
        GetWindowExStyle( hwnd ) );
...
}
...

25

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
 楼主| 发表于 2005-2-22 16:32:00 | 显示全部楼层

Re:怎样通过windows窗口客户区大小计算整个窗口大小?

谢谢啦

25

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
 楼主| 发表于 2005-2-22 16:49:00 | 显示全部楼层

Re:怎样通过windows窗口客户区大小计算整个窗口大小?

不过说真的,如果知道相关函数名,就通过函数名查询,象这样怎么在msdn查资料啊?高手指点一下

25

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
 楼主| 发表于 2005-2-22 19:19:00 | 显示全部楼层

Re:怎样通过windows窗口客户区大小计算整个窗口大小?

好像不行啊

25

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
 楼主| 发表于 2005-2-22 19:35:00 | 显示全部楼层

Re:怎样通过windows窗口客户区大小计算整个窗口大小?

CreateWindow里边的参数都先设置了,CreateWindow在前边,后边的对他有效么?

17

主题

177

帖子

177

积分

注册会员

Rank: 2

积分
177
QQ
发表于 2005-2-22 21:18:00 | 显示全部楼层

Re:怎样通过windows窗口客户区大小计算整个窗口大小?

你可以试试MoveWindow(x,y,w,h);

37

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
发表于 2005-2-22 23:00:00 | 显示全部楼层

Re: 怎样通过windows窗口客户区大小计算整个窗口大小?

1、先以指定的尺寸创建一个窗口。
2、通过GetClientRect来获取客户区的数据。
3、比较两者的差。就可以得到实际的窗口 和 client区的偏移量。
// code below
int nWidth = 800;
int nHeight = 600;
HWND hWnd = CreateWindowEx(0, TEXT("test"), "" 0, 0, 0, nWidth, nHeight, NULL, NULL, NULL, NULL);

RECT rc;
int nOffX, nOffY;
GetClientRect(hWnd, &rc);
nOffX = nWidth - (rc.right - rc.left);
nOffY = nHeight - (rc.bottom-rc.top);

nOffX, nOffY 就是窗口client区域和和实际窗口大小的偏移量。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-24 11:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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