it looks like TImageEnMView is not fully aware of DPI changes as it looses it's scroll positions when moving application from 96 to 192 DPI screens and back. - Please start with Demo Multi\Multiview (Build with PerMonitor Aware V2) - load sample Multi_Icon.ico - reduce height so that only two icons are visible - scroll to last icon - move application to a screen with 192 DPI and see how scrollbar position is changing - again scroll down to last icon (see sample_192.png) - move back on 96 DPI screen - now position is reset to zero (see sample_96.png)
some win controls hold their position, others not. From what I noted: I have not found any ChangeScale method on ImageEn which is the usual place to react on DPI changes. The main problem seems to be GetMaxViewXY which is called during DPI change (WM_SIZE message) which seems to work with wrong data (Clientsize?). Normally, if not explicitly recalculated I would have expected every stored position/size to be DPI scaled on ChangeScale.