这个下拉列表怎么实现?

时间:2021-10-27 12:42:36
这个下拉列表怎么实现?

如图所示,上面的EDIT框我可以实现,下面的列表不知道怎么实现了,高人指点下,或者给段代码看看吧

29 个解决方案

#1


没记错的话 是Button 类的一个 风格

#2


这个不是CComboBox吗?

#3


mark下,不知道是怎么重写的

#4


是CComboBox

#5


你是想对combobox自绘吧?

派生一个类,在DrawItem和MeasureItem处理一下吧。
DrawItem中可以得到itemRect,根据这个去绘制背景.

#6


引用 5 楼 sjdev 的回复:
你是想对combobox自绘吧?

派生一个类,在DrawItem和MeasureItem处理一下吧。
DrawItem中可以得到itemRect,根据这个去绘制背景.

那那个列表怎么办?是个圆角的

还有那个滚动条应该怎么加上?

#7


快拿分来
这加载的是个皮肤库,滚动条是皮肤库的,而不是CListBox自绘的,而且也不可能自绘!

#8


引用 7 楼 tang_xiao_bin 的回复:
快拿分来
这加载的是个皮肤库,滚动条是皮肤库的,而不是CListBox自绘的,而且也不可能自绘!

那你说说怎么加载的吧,成功了就给你分

#9


不会,帮顶。










































































































































============================ 回复内容太短了!







































































































































































































































#10


就是CCombox  你可以从网上找些皮肤库
或者直接使用BCG

#11


创建一个CCombox,添加成员变量m_CBox


m_CBox.InsertString(0,"-选择-");
m_CBox.InsertString(1,"您的小学老师姓名");
m_CBox.InsertString(2,"您喜欢的球队");
m_CBox.InsertString(3,"您手机号码的最后四位");
m_CBox.InsertString(4,"第五项");
m_CBox.InsertString(5,"第六项");
m_RoomBox.SetCurSel(0);//默认第一项
UpdateData(false);

#12


上面最后一排写错了,应该是

m_CBox.SetCurSel(0);//默认第一项

#13


自绘CComboBox控件

#14


列表那个效果是怎么绘制出来的?
或者怎么加载皮肤 出来这个效果

我知道是自绘combobox ,具体怎么实现列表的那个效果不会

#15


感觉自己去绘制有点麻烦,下拉条需要绘制,下拉按钮也要,下拉项里面颜色都的自己去重载。用GDI+试下,你可以研究下......

#16


应该是CCOMBOX

#17


Code Jocker试试看。
下载一个,里面有很多皮肤。
当然,其弊端是。改写了很多VC的东东。主要是Cview类和CWnd类,他大部分都有自己的库。

#18


引用 6 楼 sobug 的回复:
引用 5 楼 sjdev 的回复:你是想对combobox自绘吧? 派生一个类,在DrawItem和MeasureItem处理一下吧。 DrawItem中可以得到itemRect,根据这个去绘制背景.
那那个列表怎么办?是个圆角的

还有那个滚动条应该怎么加上?

同样的疑问,知道的说一下.

#19


引用 18 楼 kyshishen 的回复:
引用 6 楼 sobug 的回复:引用 5 楼 sjdev 的回复:你是想对combobox自绘吧? 派生一个类,在DrawItem和MeasureItem处理一下吧。 DrawItem中可以得到itemRect,根据这个去绘制背景. 那那个列表怎么办?是个圆角的 还有那个滚动条应该怎么加上?
同样的疑问,知道的说一下.

其他的不清楚,但是那个滚动条,如果我没记错的话,是CCombox本身就拥有的效果吧
当CCombox的下拉列表无法将内容一次显示出来的时候,它会自动生成滚动条的

#20


那个效果并不比系统自带的美观,实现起来还这么麻烦.楼主为什么要用呢?

#21


mark
mark
mark
mark
mark
mark
mark
mark
mark
mark

#22


春哥啊~~~您就给排个高手过来帮我一把吧

#23


 哇哇哇
回复内容太短了!

#24


该回复于2010-02-23 16:33:47被版主删除

#25


api HOOK,SetScrollInfo GetScrollInfo GetScrollPos 等。
因为仅仅子类化COMBO中的列表控件,重写OnNcPaint是不够的。因为有的时候,是直接用CWindowdc绘制的。
我记得有个哥们写过一个类,在CSDN上可以搜索到。
skinsb
//
// Descrption  : Skin scrollbar library Version 1.2
//
// Author      : LiJun(Chinase)
//
// E-Mail      : notoldtree@126.com 
希望对你有帮助

#26


你上codeproject上搜索一下,由相关的代码。自定义控件。

#27


用combobox去实现很简单。。
楼主看看《VC技术内务》第六章,基本控件介绍。上面有源代码。写的很好很简单。

#28


你会自绘吗?那你知道怎么替换图片的咯?
找点素材图片不就好了

#29


顶一下,试试25楼这位兄弟的方法。

#1


没记错的话 是Button 类的一个 风格

#2


这个不是CComboBox吗?

#3


mark下,不知道是怎么重写的

#4


是CComboBox

#5


你是想对combobox自绘吧?

派生一个类,在DrawItem和MeasureItem处理一下吧。
DrawItem中可以得到itemRect,根据这个去绘制背景.

#6


引用 5 楼 sjdev 的回复:
你是想对combobox自绘吧?

派生一个类,在DrawItem和MeasureItem处理一下吧。
DrawItem中可以得到itemRect,根据这个去绘制背景.

那那个列表怎么办?是个圆角的

还有那个滚动条应该怎么加上?

#7


快拿分来
这加载的是个皮肤库,滚动条是皮肤库的,而不是CListBox自绘的,而且也不可能自绘!

#8


引用 7 楼 tang_xiao_bin 的回复:
快拿分来
这加载的是个皮肤库,滚动条是皮肤库的,而不是CListBox自绘的,而且也不可能自绘!

那你说说怎么加载的吧,成功了就给你分

#9


不会,帮顶。










































































































































============================ 回复内容太短了!







































































































































































































































#10


就是CCombox  你可以从网上找些皮肤库
或者直接使用BCG

#11


创建一个CCombox,添加成员变量m_CBox


m_CBox.InsertString(0,"-选择-");
m_CBox.InsertString(1,"您的小学老师姓名");
m_CBox.InsertString(2,"您喜欢的球队");
m_CBox.InsertString(3,"您手机号码的最后四位");
m_CBox.InsertString(4,"第五项");
m_CBox.InsertString(5,"第六项");
m_RoomBox.SetCurSel(0);//默认第一项
UpdateData(false);

#12


上面最后一排写错了,应该是

m_CBox.SetCurSel(0);//默认第一项

#13


自绘CComboBox控件

#14


列表那个效果是怎么绘制出来的?
或者怎么加载皮肤 出来这个效果

我知道是自绘combobox ,具体怎么实现列表的那个效果不会

#15


感觉自己去绘制有点麻烦,下拉条需要绘制,下拉按钮也要,下拉项里面颜色都的自己去重载。用GDI+试下,你可以研究下......

#16


应该是CCOMBOX

#17


Code Jocker试试看。
下载一个,里面有很多皮肤。
当然,其弊端是。改写了很多VC的东东。主要是Cview类和CWnd类,他大部分都有自己的库。

#18


引用 6 楼 sobug 的回复:
引用 5 楼 sjdev 的回复:你是想对combobox自绘吧? 派生一个类,在DrawItem和MeasureItem处理一下吧。 DrawItem中可以得到itemRect,根据这个去绘制背景.
那那个列表怎么办?是个圆角的

还有那个滚动条应该怎么加上?

同样的疑问,知道的说一下.

#19


引用 18 楼 kyshishen 的回复:
引用 6 楼 sobug 的回复:引用 5 楼 sjdev 的回复:你是想对combobox自绘吧? 派生一个类,在DrawItem和MeasureItem处理一下吧。 DrawItem中可以得到itemRect,根据这个去绘制背景. 那那个列表怎么办?是个圆角的 还有那个滚动条应该怎么加上?
同样的疑问,知道的说一下.

其他的不清楚,但是那个滚动条,如果我没记错的话,是CCombox本身就拥有的效果吧
当CCombox的下拉列表无法将内容一次显示出来的时候,它会自动生成滚动条的

#20


那个效果并不比系统自带的美观,实现起来还这么麻烦.楼主为什么要用呢?

#21


mark
mark
mark
mark
mark
mark
mark
mark
mark
mark

#22


春哥啊~~~您就给排个高手过来帮我一把吧

#23


 哇哇哇
回复内容太短了!

#24


该回复于2010-02-23 16:33:47被版主删除

#25


api HOOK,SetScrollInfo GetScrollInfo GetScrollPos 等。
因为仅仅子类化COMBO中的列表控件,重写OnNcPaint是不够的。因为有的时候,是直接用CWindowdc绘制的。
我记得有个哥们写过一个类,在CSDN上可以搜索到。
skinsb
//
// Descrption  : Skin scrollbar library Version 1.2
//
// Author      : LiJun(Chinase)
//
// E-Mail      : notoldtree@126.com 
希望对你有帮助

#26


你上codeproject上搜索一下,由相关的代码。自定义控件。

#27


用combobox去实现很简单。。
楼主看看《VC技术内务》第六章,基本控件介绍。上面有源代码。写的很好很简单。

#28


你会自绘吗?那你知道怎么替换图片的咯?
找点素材图片不就好了

#29


顶一下,试试25楼这位兄弟的方法。