2008-11-19 175 views
1

我正在写一个direct3d应用程序,并且在注意到奇怪的错误(例如即使关闭了鼠标指针并且没有与自身坐标相同的事物排列起来)之间发生反锯齿之后,我发现创建窗口时,宽度和高度参数包含边框。该程序将800x600图形输出渲染到相同尺寸的窗口,但由于边界被挤压成792x566的矩形。我增加了窗口的大小来补偿,但如果系统使用其他标准XP样式的边框样式,则这不起作用。 (例如经典风格)窗口边框的宽度和高度

有没有办法在创建窗口之前知道边框的宽度和高度?

回答

2

听起来你正在寻找GetSystemMetrics函数。例如,以像素为单位的边框宽度由

GetSystemMetrics(SM_CXBORDER) 

ADDED返回:总大小,你将需要添加的非客户区的各种“作品”在一起:边界,帧大小,标题酒吧等

+0

当你创建窗口时,你将需要更多的东西,这取决于你是否有菜单/字幕/等。所以请确保你满足这些情况以及SM_CXBORDER。 – 2008-11-19 00:20:06

3

另一种选择是确保D3D表面与客户矩形尺寸(GetClientRect())大小相同。然后你知道你会渲染到合适的尺寸,而不必担心菜单,边框等的宽度。

相关问题