MFC控件listbox(列表框)

MFC控件listbox(列表框)

定义控件对应变量:

假定已经创建了一个Dialog,并且给该Dialog建立了类,并且从控件工具箱将 Combo Box 控件拖放到上面。打开 Class Wizard,添加控件对应变量,如:CComboBox m_cbExamble;在后面的代码中会不断使用这个变量。

建立类向导,选择MemberVariables->IDC_COMBO1->Add Variable,添加控件对应变量即可。

为该下拉框建立相应的响应函数,该响应函数应该是在Dialog建立的类下

2、向控件添加 Items

       1) 在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。换行用ctrl+回车。

2) 利用函数 AddString() 向 Combo Box 控件添加 Items,如:

m_cbExample.AddString(“StringData1”);

m_cbExample.AddString(“StringData2”);

m_cbExample.AddString(“StringData3”);

3) 也可以调用函数 InsertString() 将 Item 插入指定位置 nIndex,如:

m_cbExample.InsertString( nIndex,“StringData” );

为了使添加Items后光标会停留在第一个Items上可以用m_cbExample.SetCurSel(0);来实现

3、从控件得到选定的Item

假设在控件列表中已经选定某项,现在要得到被选定项的内容,首先要得到该项的位置,然后得到对应位置的内容。这里会用到两个函数,如:

int nIndex = m_cbExample.GetCurSel();

CString strCBText;

m_cbExample.GetLBText( nIndex, strCBText);

这样,得到的内容就保存在strCBText 中。

若要选取当前内容,可调用函数GetWindowText(strCBText)。

4、在控件中查找给定Item

这种操作一般用于在程序中动态修改控件中该项的值,可以用函数FindStringExact() 精确匹配,如:

int nIndex = m_cbExample.FindStringExact(nStartAfter, “value to be found”);

nStartAfter指明从哪一行开始查找。如果查找成功,返回的是该项的位置;否则,返回CB_ERR。

也可以选中包含指定字符串的项,如:

int nIndex = m_cbExample.SelectString(nStartAfter, “value to be selected”);

5、删除控件中的Item

该操作可以利用函数DeleteString(),需要指定被删除项的位置,如:

m_cbExample.DeleteString(nIndex);

也可以使用函数ResetContent(),清除目前的所有项,如:

m_cbExample.ResetContent();

6、显示控件中的某项

int nIndex = m_cbExample.GetCurSel(); //当前选中的项

m_cbExample.SetCurSel(nIndex); //设置第nIndex项为显示的内容

7、得到或设置输入框中被选中的字符位置

DWORD GetEditSel( ) /BOOL SetEditSel( intnStartChar, int nEndChar );

BOOL LimitText( int nMaxChars ); 设置输入框中可输入的最大字符数。

8、列表框常用消息映射宏

ON_CBN宏

对应事件

ON_CBN_CLOSEUP

关闭下拉列表。

ON_CBN_DBLCLK

双击下拉列表中的项目。

ON_CBN_DROPDOWN

下拉显示列表框。

ON_CBN_EDITCHANGE

编辑框中文本内容被改动。

ON_CBN_EDITUPDATE

编辑框内容更新显示。

ON_CBN_ERRSPACE

组合框不能为某个特殊请求分配足够的内存。

ON_CBN_SELENDCANCEL

用户的选择被取消。

ON_CBN_SELENDOK

用户选择了一个项目并且通过回车键或按下鼠标而隐藏组合框的下拉列表。

ON_CBN_KILLFOCUS

组合框失去焦点。

ON_CBN_SELCHANGE

选择发生变化。

ON_CBN_SETFOCUS

组合框获得输入焦点。


窗口风格

窗口风格

说明

CBS_AUTOHSCROLL

当在行尾输入字符时自动将编辑框中的文字向右滚动。

CBS_DROPDOWN

同CBS_SIMPLE风格类似,只是只有在用户点击下拉图标时才会显示出下拉列表。

CBS_DROPDOWNLIST

同CBS_DROPDOWN类似,只是显示当前选项的编辑框为一静态框所代替。

CBS_HASSTRINGS

创建一个包含了由字串组成的项目的拥有者画组合框。

CBS_OEMCONVERT

将组合框中的ANSI字串转化为OEM字符。

CBS_OWNERDRAWFIXED

由下拉列表框的拥有者负责对内容的绘制;列表框中各项目高度相同。

CBS_OWNERDRAWVARIABLE

由下拉列表框的拥有者负责对内容的绘制;列表框中各项目高度可以不同。

CBS_SIMPLE

下拉列表始终显示。

CBS_SORT

自动对下拉列表中的项目进行排序。

CBS_DISABLENOSCROLL

当下拉列表显示内容过少时显示垂直滚动条。

CBS_NOINTEGRALHEIGHT

在创建控件时以指定的大小来精确设定组合框尺寸。

注意:如果想要列表框的下拉菜单显示行数多些,直接把下拉框拉长就可以了

注意:如果想要列表框的下拉菜单显示行数多些,直接把下拉框拉长就可以了

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页