当前位置:首页 > 技术心得 > 正文内容

ComboBox自绘异常与DrawItem不响应等问题

xjtudll5年前 (2022-04-20)技术心得11320

https://blog.csdn.net/wghhdzwzqbx02/article/details/7277937

   对于ComboBox而言,虽然与Button相比,自绘都在DrawItem函数中进行,但是实际自绘过程远比Button复杂。原因之一就在于它本身的复杂度:它由三个控件组成(CEdit,CListBox,CButton)。而且在自毁过程中极易发生各种问题,现在总结如下:

  一、CComboBox的AddString函数异常

  原因:可能属性未设置正确。

  需要设置Owner Draw属性:这个属性有三个选项:No(不采用任何自绘),Fixed(固定属性的列表高度和宽度),Variable(改变列表的高度和宽度).最直白的理解分别是:不响应DrawItem()、响应DrawItem(不响应MeasureItem)、响应MeasureItem(也响应DrawItem)。也就是说,需要将三个风格严格对应起来。

43c9b8ce-99ff-4778-aa85-e8fb559aae53

  二、自定义CComboBox不经过DrawItem函数

  原因:同上。

  三、CComboBox的GetLBText函数取到空的字符串问题。

  原因:可能是属性未设置正确:Has Strings属性有没有选上。如果没有选上该属性,即使调用了AddString函数,也在无法调用GetLBText函数来获取字符串。

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/642/

标签: C#
分享给朋友:

“ComboBox自绘异常与DrawItem不响应等问题” 的相关文章

PHP安装之后没有php.ini文件

问题: 多数教程都说修改php.ini,但是在安装目录里找了半天,根本没有php.ini,只有: php.ini-development php.ini-production 答案: 其实php.ini就是上述两个文件任选一修改而来。 当然,测试的话更合适的是php.ini-develo...

itunes无法备份ipad,因为未能与ipad开始会话

现象:ipad连接电脑后,提示“itunes无法备份ipad,因为未能与ipad开始会话” 原因:之前备份的时候发现备份进度条长时间未动,以为是死机,所以拔掉了ipad,重新连接后,无法备份。 解决办法: 1、在itunes偏好设置里,删除ipad的旧有备份 2、修复系统权限(不知道这步是不...

SVN强制写日志和修改日志功能

SVN默认是可以不写日志的,也不能修改日志,使用时颇为不便。以下就讲述如何在windows系统下实现强制写日志和修改日志功能。 1、强制用户写日志 在每次提交的时候写明提交的目的是一个很好的习惯,SVN默认没有提供,但是可以通过脚本实现:将下面的代码存为bat文件,放到版本库的hooks目录下即可,...

魅族Flyme7不显示logcat

魅族Flyme7不显示logcat

设置 -> 辅助功能 -> 开发者选项 -> Flyme扩展功能 -> 性能优化 -> 高级日志输出 -> 全部允许 没有开发者选项的先去系统设置里将开发者选项给点出来...

Protel99SE交叉线节点处理

Protel99SE交叉线节点处理

在画电路图时,不可避免的会出现十字的交叉线,虽然Protel99SE默认不会在十字交叉处有节点(Junction),但是当你移动原理图的时候,Protel99SE会自动给加上个节点,这点就很不爽了,如图1和图2。    图1 移动前无节点 图2 移动后自动多了节点 但是...

二进制操作最右侧位

   1  将最右侧的1变成0(可利用判断是不是2的幂)  下面这个公式可以将一个数x的最右侧1变成0,如果没有1,则生成的所有位都是0。 x &(x-1) 例如:0101 1000 B -----> 0101 0000 B 这个公式还可以用来检...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。