下载源码- 6.52 kbnbsp;下载示例- 80.88 kbnbsp; Introduction 这个组合框样式的控件有一个很好的下拉列表,带有图标和标题。如果您有一个组合框,其中包含有限的、预定义的可分组的选项列表,那么它将非常有用。典型的用途是项目类型、文档类型等。 截图 截屏:BitmapPickerComboEx的使用示例,取自我的文件同步软件。 基本用法 你会在ComboBox中找到三个元素: 标题(粗体,没有图标)项(有图标)空白链接 设置 控制 ComboBox控件是按照自定义控件的通常步骤设置的: 在资源编辑器中:在对话框中创建一个组合框。在*.h文件的ComboBox属性中
使用OwnerdrawnVariable和HasStrings选项:添加一行"CBitmapPickerCombo m_Combox;"在*.cpp文件中:在DoDataExchange中添加这一行“DDX_Control(pDX, IDC_COMBO1, m_Combox);”。(IDC_COMBO1中的数字可能不同。检查组合框属性。)将bitmappickercomb .cpp和bitmapkeye .cpp文件添加到项目中。 的位图 如果想在组合框中显示位图,则控件需要位图。为每个图片: 在资源编辑器中:创建一个具有黑色背景的位图和一个具有白色背景和黑色像素而不是颜色的关键位图(相同对象的)。在*.h文件中:添加一行“CBitmapKeyed bitmap”(当然,每次使用不同的名称),用“bitmap”初始化每个位图。Init (this, NULL, IDB_YOURIMAGE, IDB_YOURIMAGEKEY); 用数据填满它 创建一个标题 隐藏,复制Code
m_Combox.AddBitmap (NULL, "Headline");
创建一个项目 隐藏,复制Code
m_Combox.AddBitmap (&bitmap, "Item");
(参见上面的“位图”。) 创建空行 隐藏,复制Code
m_Combox.AddBitmap (NULL, "");
处理无效的选择 请注意,以上任何一行类型都可以由用户选择。我尝试让标题和空白行不可选,但这使得用光标键选择是不可能的。我建议检查一个无效的选择(如空白行),并在这种情况下禁用对话框中的“OK”按钮。 确认 代码主要基于Anneke sicler - roetman的BitmapPickerCombo(也可以在代码项目中使用)。我只是做了一些修改,让它看起来更好,所以我只能要求一小部分的功劳。谢谢你的安。 历史 2009年1月22日:初任 本文转载于:http://www.diyabc.com/frontweb/news249.html