Excel 2016中具有高DPI意识的任务窗格(或ActiveX控件)!怎么样?

时间:2018-06-22 10:49:18

标签: excel activex dpi excel-2016

作为Microsoft Excel 2016的最新版本,我们正在更改应用程序以支持每个监视器支持HDPI。

我们可以缩放自己的对话框,并在窗口的DPI更改时获取通知,但是在调用ICTPFactory.CreateCTP时使用的ActiveX控件始终以96 dpi创建,并且只有SystemAware DPI感知。如果在父窗口上使用GetDpiForWindow和GetWindowDpiAwarenessContext,则可以看到我们窗口的父窗口(CMMOcxHost)为96dpi / SystemAware,但CMMOcxHostChildWindowMixedMode窗口及其父级均为144dpi / MonitorAware。

下图显示了Spy ++的窗口(请参见下文)。红线下方的窗口都是作为SystemAware创建的(无疑是通过更改线程DPI感知来创建的),但是上方的窗口都是监控器。我希望CMMOcxHost是MonitorAware,这样我们就可以以高分辨率绘制窗口。

DPI awareness for window and parents

是否有一个注册表设置告诉Office我们的任务窗格ActiveX控件支持HDPI?托管我们的ActiveX控件的DLL有一个清单,表明对Windows 10的支持,并且为true,因此我认为Office任务窗格没有使用该清单来确定DPI意识?

Excel / Office开发人员团队的成员可以提出建议吗?

0 个答案:

没有答案