GetWindowRect返回1/4窗口区域

时间:2016-05-04 22:23:36

标签: c# windows winapi user32

调用GetWindowRect时,我得到的结果表明窗口的实际大小是1/4。

我正在使用带有4K显示器的Windows 10,并且某些UI元素已缩放,我想知道这是否有所贡献。

我没有任何代码或工作要显示,我只是导入并调用User32函数。 rect字段以正确的顺序声明。

任何人都可以告诉我尺寸不正确的原因吗?也许如何适当地扩展它们?

2 个答案:

答案 0 :(得分:3)

您的流程需要标记为DPI识别,您可以在应用程序清单中执行此操作。如果不这样做,您的应用程序将受DPI虚拟化的影响。请参阅:Writing DPI-Aware Desktop and Win32 Applications

答案 1 :(得分:0)

DwmGetWindowAttribute 参数中使用 DWMWA_EXTENDED_FRAME_BOUNDSdwAttribute。 这应该以像素为单位为您提供窗口的实际大小。 在此处阅读更多信息:https://docs.microsoft.com/en-us/windows/win32/api/dwmapi/nf-dwmapi-dwmgetwindowattribute