我正在编写一个direct3d应用程序,并注意到奇怪的错误,例如反锯齿发生,即使它被关闭,鼠标指针没有排列到具有相同坐标的东西,我发现在创建窗口时width和height参数包括边框。该程序将800x600图形输出渲染到相同大小的窗口,但由于边界,它被压缩成792x566矩形。我已经增加了窗口的大小来补偿,但是如果系统使用标准XP风格的边框样式,这不起作用。 (例如经典风格)

在创建窗口之前,有没有办法告诉边框宽度和高度是多少?

有帮助吗?

解决方案

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

返回
GetSystemMetrics(SM_CXBORDER)

已添加:对于总大小,您需要将各种<!>“; <!>”添加到一起。非客户区域:边框,框架大小,标题栏等。

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top