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能正常获取字符串数据。 

关于CComboBox的自绘

我想,如果大家学过一些控件的自绘的话,CComboBox算是很难的一种了.首先是它本身的复杂度:它由三个控件组成(CEdit,CListBox,CButton).我想但就CEdit来讲,就够你受得了....
  • yuanweihuayan
  • yuanweihuayan
  • 2011年11月18日 15:10
  • 1846

Combobox的简单自绘实现

#pragma once class CCustomComboBox:public CComboBox{ DECLARE_MESSAGE_MAP(); DECLARE_DYNAMIC(CCust...
  • tianminghahaha
  • tianminghahaha
  • 2016年04月28日 14:39
  • 2523

CComboBox自绘

上图: 头文件:   实现文件:     引用实现:  注: 使用SetWindowPos设置控件位置的时候,高度必...
  • XHXRYJRANRAN
  • XHXRYJRANRAN
  • 2013年12月06日 10:46
  • 1202

一个扩展的CComboBox 下拉框 自绘 美化

  • 2012年09月28日 23:53
  • 263KB
  • 下载

自绘CComboBox

转自:http://www.gymsaga.com/mfc/419.html 先介绍基本ComboBox: 风格 列表框何时可见 静态控件还是编辑控件 Simple ...
  • u010827382
  • u010827382
  • 2016年02月03日 17:29
  • 404

MFC重绘控件篇---按钮CCombox

【组合框CComboBox】控件应用第八课 【组合框CComboBox】控件应用第九课 【组合框CComboBox】控件应用第十课...
  • gym1039
  • gym1039
  • 2013年10月10日 18:11
  • 1074

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
  • 3701

MFC-自绘控件(CComBox篇)

示例图 一、公共文件 和这篇一样,就不写了(MFC-自绘控件(CButton篇)) 二、CComBox 头文件 #pragma once #include "Public.h" #include ...
  • wyansai
  • wyansai
  • 2016年03月29日 00:44
  • 1897

【自绘ComboBox】带图标的ComboBox

示例图片:下载源码下载 示例程序下载源码共包含两个文件: 1. ComboBoxXI.h 2. ComboBoxXI.cpp使用说明提供的接口void SetImageList(CImageLi...
  • wangyao1052
  • wangyao1052
  • 2015年05月17日 10:27
  • 2461

自绘WTL的CComboBox控件

这次自绘这个CComboBox控件,真是费了很长的时间,网上没找着一个合适的例子,不过还好总算给弄出来了,下面总结一下:1,依然是继承CComboBox 和COwnerDraw两个类.然后和其他的Ow...
  • lion_wing
  • lion_wing
  • 2010年09月09日 15:21
  • 966
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CComboBox自绘
举报原因:
原因补充:

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