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的高度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值