`
qncb
  • 浏览: 7009 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

mfc自绘combobox的item高度的诡异问题

阅读更多

1. 自绘的combobox的itemheight设置好以后(假设20像素),在UI上显示的高度会比你设置的像素高3-4个pixel,这包括combobox两部分item的高度:editbox和下面的listbox的item高度。目前尚不知道根本原因。

 

2. 高DPI下,如何让自绘的combo变成DPI-Aware?这个比较麻烦了。因为这个取决于combo的父窗体是否DPI-Aware。如果是的话,那么可以取当前父窗体的字体高度(如果是windows控件,就取systemmetrics),假设为X。再取当前系统的DPI,假设为Y,那么combo的高度为(X-3)*Y/96,这里96是通常的DPI值。如果父窗体给你的combo写死了高度值而不随DPI变化(比如treeview的每一行后面跟一个combo),假设为Z个像素,那么直接在此值基础上减去4就可以了。

 

以上说的给combo设高度值,都是通过系统消息CB_SETITEMHEIGHT完成的,wparam为-1表示combo中editable部分的高度,0表示listitem的高度。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics