VC comboBox

有没有办法把comboBox换成按钮形式,本来点击下来combo的下拉箭头列表被弹出,现在我想实现把下拉箭头换成button形式,我试过一些蠢方法,用按钮和列表框组合用,... 有没有办法把comboBox换成按钮形式,本来点击下来combo的下拉箭头列表被弹出,现在我想实现把下拉箭头换成button形式,

我试过一些蠢方法,用按钮和列表框组合用,当点击按钮在相应位置列表框showWindow,但是不行的是:如果列表框弹出的位置有Button的话,列表框会被按钮覆盖,即使使用::SetWindowPos(..)将列表框置于Z序前,都只能解决点击列表框不点到按钮,但是显示还是按钮在上,(XP风格按钮).

还使用过,弹出菜单,这个效果非常差,

我想就comboBox的下拉菜单不错,排除了上面两种问题,但是我就只想用到那个列表框,所以我用RGN异型窗口来把comboBox的上面去掉,但是,下拉列表不出来了~~

各位大侠有无什么好的方法,小弟无能为力了~~
隐藏按钮,这招太麻烦了, 当存在很多按钮的时候,根本不知道要隐藏哪些,还有我还多按钮进行移动,移动之后更不知道该隐藏谁了~~~
展开
 我来答
stone_dongdong
2010-04-21 · TA获得超过2853个赞
知道大有可为答主
回答量:1636
采纳率:0%
帮助的人:1028万
展开全部
1.一个按钮,点击的时候动态弹出一个动态菜单,位置根据按钮的位置来确定。
2.继承一个cwnd。来自绘实现。从comboxbox继承比较麻烦,我写控件从来都是直接从cwnd继承,或者直接用api。

原理都是一样, 菜单/listbox弹出列表都是使用了一个while循环+GetMessage来强制优先获取鼠标消息处理来产生的位于窗口最顶端的效果。(并不是使用SetWindowPos实现)。你观察一下listbox弹出的时候,鼠标移到到别的地方会跟未弹出时候不一样就是明证。

我新写的几个控件大量使用了这个方案。。。。
C_stu
2010-04-13 · TA获得超过456个赞
知道小有建树答主
回答量:694
采纳率:0%
帮助的人:631万
展开全部
用窗口子类化, 在comboBox创建的时候在其上创建按钮, 按钮被点击时给comboBox发送按下消息```

如果这样, 点击按钮会被覆盖的话, 可以validateRect试试```

还不行的话试试ExcludeClip...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1d8e8b9
2010-04-16 · TA获得超过913个赞
知道小有建树答主
回答量:589
采纳率:60%
帮助的人:324万
展开全部
好几种办法实现

● 第一种,派生CComboBox,重绘控件。
● 第二种,放个按钮,当点击时,出现一个List控件并添加数据,或者事先先创建好,只是把他显示出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超基赫
2010-04-12 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:91
采纳率:0%
帮助的人:87.7万
展开全部
“如果列表框弹出的位置有Button的话,列表框会被按钮覆盖,即使使用::SetWindowPos(..)将列表框置于Z序前,都只能解决点击列表框不点到按钮,但是显示还是按钮在上,(XP风格按钮).”
这个方法是可以的,以前我也遇到过类似的问题,不过忘了怎么解决这个方法的问题了。继续加油吧。 要不就只能自己重画combobox了。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友827e49f
2010-04-20 · TA获得超过233个赞
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:153万
展开全部
以上方法除外,你也可以把你列表框下边的按钮全隐藏了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式