我一直在更新一个现有的Win32应用程序,以获得新闻部的关注。按照MSDN和其他站点上的各种指南,我根据当前的监视器DPI手动缩放我的坐标和字体大小。
我只是偶然发现了这样一条信息:双峰。医生说:
启用树视图控件、列表视图控件、ComboBoxEx控件、标头控件、按钮、工具栏控件、动画控件和图像列表中的每英寸高点自动缩放功能
但它实际上是做什么的?我尝试将信息发送到我的控制之下,如下所示:
SendMessage(hWnd, CCM_DPISCALE, (WPARAM) TRUE, 0);但它在字体、大小、布局等方面没有明显的影响,在任何新闻部都是如此。
根据文档,我使用的是Comclt32.dll Version6.0。
在谷歌搜索这条消息时,我能找到的唯一参考是该MSDN页面,以及来自左室文档的链接。
这条信息到底要做什么?
发布于 2018-07-04 17:59:41
我至少弄清楚了这件事的一小部分。
在ListView控件中,如果列是用固定宽度(LVCFMT_FIXED_WIDTH)创建的,并且只要不指定LVCFMT_NO_DPI_SCALE,CCM_DPISCALE将根据当前DPI缩放列宽度。
如果您有一个分组LVS_REPORT样式的ListView,并且组头包含一个图像(LVGF_TITLEIMAGE),则该图像也将被缩放(但不是组文本(LVGF_HEADER))。
我没有测试这个缩放是否是每个监视器,我也没有找到这个消息所做的任何其他事情(尽管根据我的问题,它被记录下来以实现多个控件)。我想知道这条信息还能做些什么!
https://stackoverflow.com/questions/51087419
复制相似问题