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的高度。
分享到:
相关推荐
mfc中自绘ComboBox控件的美化,可改变控件中边框的颜色,并改变右侧下拉按钮的图片,并可以保存编辑框的输入历史记录。本例子使用打过补丁的vs2008创建,内附控件类接口使用说明文档。
自绘ComboBox 自绘ComboBox 自绘ComboBox
C# 简单自绘ComboBox http://topic.csdn.net/u/20120706/10/45dfa557-7670-4044-8ebc-a17478b29e6c.html
自绘ComboBox 自绘ComboBox 自绘ComboBox
WTL 自绘 ComboBox,请注意,要在父窗口MSG_MAP中添加REFLECT_NOTIFICATIONS()
实现自绘 ComboBox 源代码 (C#) http://blog.csdn.net/wonsoft/archive/2009/03/23/4017701.aspx
自绘ComboBox 高亮色彩 边框颜色等
MFC ComboBox控件的重绘 涉及到了ComboBox控件中Edit控件的重绘、下拉列表控件的重绘以及按钮的重绘。在Edit控件以及下拉列表控件中改变了显示的颜色字体等,还可以显示图片。如果你是一个初学者,如果你想了解...
重绘ComBoBox 实现修改TextColor 控件的DrawMode要修改为OwnerDrawFixed或者OwnerDrawVariable
那你跟了解MFC使用\combobox使用
最近做一个项目,要用到Combo Box,网上找资源就是找不到类似的,最后在试验中成功,和有需要的朋友分享一下。
vs2005下开发的从ComboBox继承, png资源可以自行改变, 使用自已的风格; 另外边框的区域大小可以有方法控制, 边角不失真; 用gdi+实现了完全重绘控件的功能, mouse hover, mouse leave都有不用的效果, 并做了double ...
【最新】 MFC 修改ComboBox的样式,下拉列表的背景色 + 按钮样式,工程使用的是VS2017
MFC中ComboBox组合框的使用,介绍了MFC程序开发中对于ComboBox的使用
VC自绘CComboBox实现ComboBox的换肤等
MFC中ComboBox使用方法_用法_手册
列表框控件自绘,显示多种颜色代码,列表框控件自绘
改变ComboBox下拉高度/强行展开下拉表/自动查询列表/多列下拉框/XP风格Combobox/带图标的ComboBox 多个与ComboBox相关的源码工程下载