工作中有C++ OCX做成的控件,Ctl继承COleControl,在高DPI的环境下,运行时态OnSize返回的cx和cy,或者GetClientRect取得的值,与Design时态的不一样,Design时态就是不运行的状态。两个区别就是,运行时态的CRect是Design时态取得的CRect的1.75倍,这个倍数就是DPI的值,求解答,谢谢!
出现的时候比较奇怪,如果从RunTime切换到DesignTime时,连续进入两次OnSize,那么第二次的数据就是高DPI的值,如果只进入一次,那么就是DPI = 1的CRect