none
如何才能使Checklistbox 在屏幕分辨率为200%时 正常使用? RRS feed

  • 问题

  • hi,

    我再MFC中创建了一个包含ListBox 的Dialog,然后自定义类MyCheckListBox集成于CCheckListbox;之后创建MyCheckListBox变量MyList与Dialog中的Listbox 关联。

    之后使用MyList.AddString("aaa"); 函数想列表中增加内容。接下来程序在100% 屏幕分辨率下运行正常,但是当屏幕分辨率调整为200%时,Listbox中的字体和复选框都会自动调整大小适应分辨率,显示正常;但是当我点击复选框时,之后点击复选框靠左边才有效,点击复选框其他位置没有任何反应。

    怎么才能让复选框如在100% 下正常工作呢?

    PS:对于Listbox中item的高度,我已经手动调用SetITemHeight进行调整。

    2016年8月19日 3:14

答案

  • Hi Urgerly,

    对于这种情况,建议你使用CCheckListBox::OnGetCheckPosition检查一下复选框的大小和位置。MFC中并没有可以设置复选框大小的API。建议你connect Microsoft 寻求更好的帮助。

    Best Regards,

    Sera Yu


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.

    • 已建议为答案 Baron Bi 2016年9月7日 6:33
    • 已标记为答案 Baron Bi 2016年9月7日 6:34
    2016年8月30日 7:37

全部回复

  • Hi Urgerly,

    感谢在MSDN论坛发帖。

    对于这种情况,我建议你使用SetProcessDpiAwareness (或DPI清单项)将操作设置成指定的DPI awareness level,用来决定Windows如何扫描你的UI控件。

    具体情况参考以下文档

    https://msdn.microsoft.com/en-us/library/windows/desktop/dd464659(v=vs.85).aspx

    另外,根据MSDN论坛条例,请不要发布相同的帖子。

    感谢你的支持与合作。

    Best Regards,

    Sera Yu


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.

    • 已建议为答案 Baron Bi 2016年9月7日 6:33
    2016年8月19日 5:46
  • hi,Sera Yu

        非常感谢你给的建议,但是我试过之后,还是依然和之前一样。看起来很正常,但是用起来的时候还是和之前一样,对于复选框,只有点击框内的左侧有效,其他地方无效。

    2016年8月19日 8:40
  • Hi Urgerly,

    对于这种情况,建议你使用CCheckListBox::OnGetCheckPosition检查一下复选框的大小和位置。MFC中并没有可以设置复选框大小的API。建议你connect Microsoft 寻求更好的帮助。

    Best Regards,

    Sera Yu


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.

    • 已建议为答案 Baron Bi 2016年9月7日 6:33
    • 已标记为答案 Baron Bi 2016年9月7日 6:34
    2016年8月30日 7:37