MFC控件之Combo Box的使用

 

       本来是不喜欢做记录的,但是每次要用到的时候又要在晚上到处找资料,感觉还是比较麻烦,所以干脆每次把找到之后的东西整理出来,以后要用的话直接看自己的就好了!

对于MFC的学习,有一点自己的小体会,因为整理的框架还是比较难理解的,各个类之间的构件也是比较麻烦的,自己C++也学的不是很好,所以就大概了学习了MFC的一个整体

的结构,和Windows中最重要的消息机制,想比较深刻的了解这个机制,可以自己尝试写一下WIN32的程序,那样的话理解起来可能会更快一些。

       还是直接说Com Box控件吧!Com Box控制为组合控件有三种情况,自己可以在属性中查看,其他的都比较简单,有一些可能会困惑的地方重点列出来就ok了!

      第一点: 向Com控件的下拉列表添加项的时候要注意先打开下拉列表,然后在DATA数据框的添加数据,VC 6.0版本的添加办法

和VS 2010的办法不同,好久没有用vc了  如果我没有记错,vc中是用Ctrl+Enter键的组合,添加多项,vs中两个数据直接用一个分

好隔开就行了,如(1;2;3;4;5),这样就添加了1,2,3,4,5这5项数据进去了。

     第二点: 应该是最容易为难到大家的地方,获取控件选定的内容,我们知道控件有三种情况,我们就说其中的两种(没有说的应

该是最简单的一种),一种是列表控件,即运行后只能通过下拉选定数据,另一种是组合框控件,可以下拉也可以编辑,相对来说

比较灵活,也比较难使用。

                 对于列表框控件,要获取它的内容,有两个函数,参考MSDN的原版解释:

                                            

Call this member function to determine which item in the combo box is selected.

int GetCurSel( ) const;

Return Value

The zero-based index of the currently selected item in the list box of a combo box, orCB_ERR if no item is selected.

Remarks

GetCurSel returns an index into the list.

    

     示例代码:(能看的懂一点英语的就不用解释了)

      

// Select the next item of the currently selected item 
// in the combo box.
  CString sample1;
  int index=sgDgl.m_sample1.GetCurSel();
  m_sample1.GetLBText(index,sample1); //sample1就是所需要的内容


         对于组合框控件上面的办法可就不行了,不过办法还是有的,可以用下面的方法

          

	int  nindex; 
	//nindex是获取选定项,和上面的第一个函数意思一样,IDC_COMBO1是组合框控件的ID号
	nindex =((CComboBox *)GetDlgItem(IDC_COMBO1))->GetCurSel();	
	CString s1;
	//s1是要获取的组合框控件的内容,是采用获取控件的HWND(句柄),在获取Windows(窗口内容的方法)
	((CComboBox *)GetDlgItem(IDC_COMBO1))->GetWindowText(s1);
 

          这样基本上就能获取到组合框的内容了,但是在编程中有一点可能需要谨慎的说明一下 ,也只是表示个人的观点,既然要使

用Combo Box控件,肯定表示要选定的内容较少,或者范围有限,而是用组合框Com Box(更灵活使用)时是可以随便输入的,也

就是说在后面的程序中,需要判断输入的内容是否合法.

           Com Box就说这么多,至于其他的用法,就查MSDN的文档,API都有比较详细的描述。

          如有转载请注明出处。

         
    

                                                                                           

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值