VC comboBox
有没有办法把comboBox换成按钮形式,本来点击下来combo的下拉箭头列表被弹出,现在我想实现把下拉箭头换成button形式,我试过一些蠢方法,用按钮和列表框组合用,...
有没有办法把comboBox换成按钮形式,本来点击下来combo的下拉箭头列表被弹出,现在我想实现把下拉箭头换成button形式,
我试过一些蠢方法,用按钮和列表框组合用,当点击按钮在相应位置列表框showWindow,但是不行的是:如果列表框弹出的位置有Button的话,列表框会被按钮覆盖,即使使用::SetWindowPos(..)将列表框置于Z序前,都只能解决点击列表框不点到按钮,但是显示还是按钮在上,(XP风格按钮).
还使用过,弹出菜单,这个效果非常差,
我想就comboBox的下拉菜单不错,排除了上面两种问题,但是我就只想用到那个列表框,所以我用RGN异型窗口来把comboBox的上面去掉,但是,下拉列表不出来了~~
各位大侠有无什么好的方法,小弟无能为力了~~
隐藏按钮,这招太麻烦了, 当存在很多按钮的时候,根本不知道要隐藏哪些,还有我还多按钮进行移动,移动之后更不知道该隐藏谁了~~~ 展开
我试过一些蠢方法,用按钮和列表框组合用,当点击按钮在相应位置列表框showWindow,但是不行的是:如果列表框弹出的位置有Button的话,列表框会被按钮覆盖,即使使用::SetWindowPos(..)将列表框置于Z序前,都只能解决点击列表框不点到按钮,但是显示还是按钮在上,(XP风格按钮).
还使用过,弹出菜单,这个效果非常差,
我想就comboBox的下拉菜单不错,排除了上面两种问题,但是我就只想用到那个列表框,所以我用RGN异型窗口来把comboBox的上面去掉,但是,下拉列表不出来了~~
各位大侠有无什么好的方法,小弟无能为力了~~
隐藏按钮,这招太麻烦了, 当存在很多按钮的时候,根本不知道要隐藏哪些,还有我还多按钮进行移动,移动之后更不知道该隐藏谁了~~~ 展开
5个回答
展开全部
1.一个按钮,点击的时候动态弹出一个动态菜单,位置根据按钮的位置来确定。
2.继承一个cwnd。来自绘实现。从comboxbox继承比较麻烦,我写控件从来都是直接从cwnd继承,或者直接用api。
原理都是一样, 菜单/listbox弹出列表都是使用了一个while循环+GetMessage来强制优先获取鼠标消息处理来产生的位于窗口最顶端的效果。(并不是使用SetWindowPos实现)。你观察一下listbox弹出的时候,鼠标移到到别的地方会跟未弹出时候不一样就是明证。
我新写的几个控件大量使用了这个方案。。。。
2.继承一个cwnd。来自绘实现。从comboxbox继承比较麻烦,我写控件从来都是直接从cwnd继承,或者直接用api。
原理都是一样, 菜单/listbox弹出列表都是使用了一个while循环+GetMessage来强制优先获取鼠标消息处理来产生的位于窗口最顶端的效果。(并不是使用SetWindowPos实现)。你观察一下listbox弹出的时候,鼠标移到到别的地方会跟未弹出时候不一样就是明证。
我新写的几个控件大量使用了这个方案。。。。
展开全部
用窗口子类化, 在comboBox创建的时候在其上创建按钮, 按钮被点击时给comboBox发送按下消息```
如果这样, 点击按钮会被覆盖的话, 可以validateRect试试```
还不行的话试试ExcludeClip...
如果这样, 点击按钮会被覆盖的话, 可以validateRect试试```
还不行的话试试ExcludeClip...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好几种办法实现
● 第一种,派生CComboBox,重绘控件。
● 第二种,放个按钮,当点击时,出现一个List控件并添加数据,或者事先先创建好,只是把他显示出来。
● 第一种,派生CComboBox,重绘控件。
● 第二种,放个按钮,当点击时,出现一个List控件并添加数据,或者事先先创建好,只是把他显示出来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
“如果列表框弹出的位置有Button的话,列表框会被按钮覆盖,即使使用::SetWindowPos(..)将列表框置于Z序前,都只能解决点击列表框不点到按钮,但是显示还是按钮在上,(XP风格按钮).”
这个方法是可以的,以前我也遇到过类似的问题,不过忘了怎么解决这个方法的问题了。继续加油吧。 要不就只能自己重画combobox了。。。
这个方法是可以的,以前我也遇到过类似的问题,不过忘了怎么解决这个方法的问题了。继续加油吧。 要不就只能自己重画combobox了。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
以上方法除外,你也可以把你列表框下边的按钮全隐藏了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询