WM_DPICHANGED, behavior when when App launches
<p>Our delphi app is Per Monitor DPI aware.</p>

<p>Our app is scaled when we receive the WM_DPICHANGED message.</p>

<p>We have a customer who uses two 4K Monitors, both set to 200% DPI Scaling.
When he runs our App it does not scale properly. He is running on Windows 10.</p>

<p>We discovered that when our app launches, the WM_DPICHANGED event is not being triggered <strong>on his PC</strong>.</p>

<p>According to the <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/dn312083(v=vs.85).aspx" rel="nofollow">docs</a>, WM_DPICHANGED will be fired when:</p>

<blockquote>
  <ul>
  <li>The window is moved to a new monitor that has a different DPI.</li>
  <li>The DPI of the monitor hosting the window changes.</li>
  </ul>
</blockquote>

<p>So according to the documentation, if both monitors are using 200% DPI Scale, it seems as though the event should not fire.</p>

<p>However, when we setup a PC with two monitors each setup to 150% scaling, the WM_DPICHANGED <strong>is</strong> fired when our App lauches and therefore scales just fine.</p>

<p>Should the WM_DPICHANGED be fired when our App launches under the described scenario, what is the expected behaviour?</p>

<p>Which reasons can explain the different behaviour between our setup and our customers setup?</p>

<p>Thank you!</p>