我有一个程序集作为插件加载到另一个应用程序中。我可以访问主窗口的窗口句柄,并使用它来查找尺寸以相应地调整对话框的大小。
问题是GetClientRect
在第一次打开对话框时返回了不同的大小。我得到的是未缩放的大小。以下所有调用均返回缩放后的尺寸(在我的情况下,dpi设置为150%)。
示例:第一次调用返回的大小为1519,1294。第一次打开对话框后,所有呼叫均返回2278,1942(150%)。
似乎打开对话框会自动初始化dpi缩放。 有没有办法在我第一次致电GetClientRect
之前手动初始化dpi缩放?
我当前的解决方法是在首次使用该对话框时快速打开和关闭该对话框。
请注意,此代码位于dll插件中。我收到来自主应用程序的回调,在该应用程序中,我创建了一个STA线程来打开对话框。