本来是不喜欢做记录的,但是每次要用到的时候又要在晚上到处找资料,感觉还是比较麻烦,所以干脆每次把找到之后的东西整理出来,以后要用的话直接看自己的就好了!
对于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都有比较详细的描述。
如有转载请注明出处。