WM_DPICHANGED,应用程序启动时的行为

时间:2016-10-31 15:52:27

标签: delphi vcl dpi delphi-10-seattle

我们的delphi应用程序是Per Monitor DPI识别。

当我们收到WM_DPICHANGED消息时,我们的应用程序会缩放。

我们有一位客户使用两台4K显示器,均设置为200%DPI Scaling。 当他运行我们的应用程序时,它无法正确扩展。他在Windows 10上运行。

我们发现,当我们的应用启动时,WM_DPICHANGED事件未在其PC上触发

根据docs,在以下情况下将触发WM_DPICHANGED:

  
      
  • 窗口将移至具有不同DPI的新监视器。
  •   
  • 托管窗口的监视器的DPI发生了变化。
  •   

因此,根据文档,如果两台显示器都使用200%DPI Scale,那么事件似乎不应该触发。

然而,当我们设置一台带有两个显示器的PC时,每个设置为150%缩放,当我们的应用程序启动时WM_DPICHANGED 被触发,因此可以很好地扩展。

如果我们的应用程序在所描述的场景下启动时会触发WM_DPICHANGED,那么预期的行为是什么?

哪些原因可以解释我们的设置与客户设置之间的不同行为?

谢谢!

0 个答案:

没有答案