CComboBox自绘

原创 2013年12月06日 10:46:59
上图:
图片


头文件:

图片 


实现文件:
图片 


图片 


图片



引用实现: 
图片



注:
使用SetWindowPos设置控件位置的时候,高度必须足够,比如200等等,不然下拉框不会出现。
 

补充: 
按照上面的代码生成的CComboBox在用GetLBText函数获取字符串的时候会返回乱码,解决办法:
勾选CComboBox的“Has Strings”选项,如下图:
图片
然后,在图片函数里面,修改如下:图片
原因:
图片 
这个结构里面,itemData的官方说明如下:
Specifies the application-defined value associated with the menu item. For a control, this parameter specifies the value last assigned to the list box or combo box by the LB_SETITEMDATA or CB_SETITEMDATA message. If the list box or combo box has the LBS_HASSTRINGS or CBS_HASSTRINGS style, this value is initially zero. Otherwise, this value is initially the value that was passed to the list box or combo box in the lParam parameter of one of the following messages:
  • CB_ADDSTRING
  • CB_INSERTSTRING
  • LB_ADDSTRING
  • LB_INSERTSTRIN 
 
当为一个菜单时,itemData关联的是程序设定的菜单的数据;当为一个控件时,这个值指定了通过LB_SETITEMDATA或者CB_SETITEMDATA设定的数据。如果列表框或者组合框有LBS_HASSTRINGS或者CBS_HASSTRINGS风格,则itemData被置零,否则,itemData就被设置为指向通过如下消息发送的字符串数据的指针:
CB_ADDSTRING、CB_INSERTSTRING、LB_ADDSTRING、LB_INSERTSTRING。

所以,在没有勾选“Has Strings”选项的时候,可以通过itemData获取字符串数据,但是用GetLBText获得的字符串为空。勾选之后,通过itemData获取的数据为空(在没有SetItemData的情况下),而用GetLBText能正常获取字符串数据。 

相关文章推荐

ComboBox重绘

How to subclass CListBox and CEdit inside of CComboBox Article ID: 174667 - View products that th...
  • pud_zha
  • pud_zha
  • 2012年12月09日 16:12
  • 3498

组合框控件Combo Box和CComboBox类

本节主要讲解组合框控件Combo Box。组合框同样相当常见,例如,在Windows系统的控制面板上设置语言或位置时,有很多选项,用来进行选择的控件就是组合框控件。它为我们的日常操作提供了很多方便。 ...

自绘ComboBox改变颜色和大小

要点       1. ComboBox控件由三部分组成:ComboBox本身,CEidt或者CStaitc,ClistBox。当类型是Dropdown时,内部是CEdit;是类型是Drop L...

CComboBox自绘

  • 2017年11月15日 14:22
  • 13.21MB
  • 下载

CComboBox自绘

  • 2013年09月04日 21:44
  • 3.52MB
  • 下载

MFC-自绘控件(CEdit篇)

示例图(可以设置左右图标,字体颜色,圆角) 一、公共文件 和这篇一样,就不写了(MFC-自绘控件(CButton篇)) 二、CEdit 头文件 #pragma once #include "Publ...
  • wyansai
  • wyansai
  • 2016年03月27日 23:55
  • 2164

【腾讯bugly干货分享】Android自绘动画实现与优化实战——以Tencent OS录音机波形动

本文来自于腾讯bugly社区,原文地址为:http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=1180前言我们所熟知的,Android 的图形绘制...

CListCtrl自绘或者设置相关的技术问题

Q    a question about CListCtrl - waiting on line ...   T 怎样将 CListCtrl 中的一行( one item)的背景或 T...
  • mail_cm
  • mail_cm
  • 2012年01月31日 11:12
  • 1207

Android 自绘TextView解决提前换行问题,支持图文混排

先看下效果图: 上面是MTextView,下面是默认的TextView。   一、原因 用最简单的全英文句子为例,如果有一个很长的单词,这一行剩余的空间显示不下了,那么规则就是不打断单词,而是把整个单...

从0自学C#01--自绘窗体边框

从0自学C#01–自绘窗体边框主要介绍自绘窗体边框和背景颜色逐级变浅(深)。...
  • tclxspy
  • tclxspy
  • 2016年01月15日 14:46
  • 661
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CComboBox自绘
举报原因:
原因补充:

(最多只允许输入30个字)