VC如何做像下拉列表一样的窗口
如图:点击一下,窗口伸展开来,但不遮住下面的,再点击一下,窗口收回来.如果是自己计算位置然后重新调整各个控件的位置和显示的,当窗口大小变化时就有问题了.请问一般情况下这是...
如图:点击一下,窗口伸展开来,但不遮住下面的,再点击一下,窗口收回来.
如果是自己计算位置然后重新调整各个控件的位置和显示的,当窗口大小变化时就有问题了.请问一般情况下这是怎样实现的呢?
MFC提供的下拉列表中只能加入文字,不能加入控件,请看清楚图片 展开
如果是自己计算位置然后重新调整各个控件的位置和显示的,当窗口大小变化时就有问题了.请问一般情况下这是怎样实现的呢?
MFC提供的下拉列表中只能加入文字,不能加入控件,请看清楚图片 展开
4个回答
展开全部
就是使用Combo box控件
只是添加了一些函数
先给Combox box绑定变量comb必须是control型的,属性设置成drop list
使用addstring添加comb的内容,然后使用m_comb.GetCount获取总项目条数
接下来就是要在拉开/收起comb时对应的移动下面的东西
然后添加响应函数,一个是closeup一个是setfocus
在这2个函数里的响应函数分别添加函数使下面的东西上/下移动
可以使用movewindow实现移动功能
移动的话水平不移动,只垂直移动,高度是刚才GetCount的条数*每行的高度
具体几个函数的使用方法都可以在百度百科查找到 我这里只是提供函数,参数怎么解决还要靠你自己
没有全能的控件,其实很多控件所实现的内容都是要靠自己手工添加的,都是用的最基本的那几个控件
只是添加了一些函数
先给Combox box绑定变量comb必须是control型的,属性设置成drop list
使用addstring添加comb的内容,然后使用m_comb.GetCount获取总项目条数
接下来就是要在拉开/收起comb时对应的移动下面的东西
然后添加响应函数,一个是closeup一个是setfocus
在这2个函数里的响应函数分别添加函数使下面的东西上/下移动
可以使用movewindow实现移动功能
移动的话水平不移动,只垂直移动,高度是刚才GetCount的条数*每行的高度
具体几个函数的使用方法都可以在百度百科查找到 我这里只是提供函数,参数怎么解决还要靠你自己
没有全能的控件,其实很多控件所实现的内容都是要靠自己手工添加的,都是用的最基本的那几个控件
展开全部
1.扩展一个控件。在上面放置几个子控件(用动态生成的方式创建),响应wm_onlbuttondown消息实现弹出和收回的功能。
2.关于定位,要看实际的需要了,MFC没有自动排列子控件的功能,一个窗口的所有子控件定位关系是由开发者来确定的。你说的例子是资源管理器的查找吧,那是特制的,通过相应wm_onlbuttondown 和wm_size来动态调整各个子控件位置的。
3.如果要实现弹出/收回调整其他子控件。通过GetParent,GetWindow,来枚举查找当前窗口的所有兄弟窗口,GetWindowRect 来判断位置,动态移开就好了。
怎么定位看具体的需求而定。
2.关于定位,要看实际的需要了,MFC没有自动排列子控件的功能,一个窗口的所有子控件定位关系是由开发者来确定的。你说的例子是资源管理器的查找吧,那是特制的,通过相应wm_onlbuttondown 和wm_size来动态调整各个子控件位置的。
3.如果要实现弹出/收回调整其他子控件。通过GetParent,GetWindow,来枚举查找当前窗口的所有兄弟窗口,GetWindowRect 来判断位置,动态移开就好了。
怎么定位看具体的需求而定。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
http://www.codeguru.com/Cpp/controls/combobox/
codeguru上有很多 用户定制后的 combobox
如:
CComboBox with support for history
Folder/Drive Picker Combo Box
。。。。
codeguru上有很多 用户定制后的 combobox
如:
CComboBox with support for history
Folder/Drive Picker Combo Box
。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-12-31
展开全部
IIF(VAL(ThisForm.Text1.VALUE) < 0 OR VAL
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询