With great effort I have migrated my MFC application from begin Sytem DPI aware (High DPI aware)
to Per Monitor High DPI Aware
. I see that the MFC components that I have used like Dialog boxes, message boxes, etc. are still not per-monitor-dpi aware
, instead they still behave as if they are system-dpi aware
. Now with Windows DPI virtualization gone, these components are displayed even worse when different monitors of my machine have different DPI scaling.
For eg.
Consider 2 monitors M1 (3840x2160 with 150% dpi scaling
), and M2 (1280x1024 with 100% DPI scaling
). Now when my app runs on M2, a Dialog box to select color which used to fit on M2, doesn't fit on it (earlier Windows OS used to shrink it down due to DPI virtualization).
Are there any new MFC components which were introduced Windows 8 onward, which are per-monitor-dpi aware? for eg. a DIALOGEX2
instead of DIALOGEX
?