C语言实例教程(PDF格式)-第49部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
的// TODO注释:
m_lsSelectable。ResetContent();
m_lsSelectable。Dir(0x17;〃*。*〃);
上面的代码先调用成员函数ResetContent清除列表框
IDC_LISTSELECTABLE中的所有项,再调用成员函数Dir使用当前目录
下的文件名来填充该列表框。第一个参数0x17是文件类型屏蔽位,它
等于0x01|0x02|0x04|0x10,它包括了所有常规属性文件、只读文
件、系统文件和目录名,第二个参数为所显示的文件名,在参数中可
以使用通配符。
为按钮IDC_BTNCHANGEDIR的BN_CLICKED命令添加下面的处理函数
OnBtnChangeDir:
void CListBoxDemoDlg::OnBtnChangeDir()
…………………………………………………………Page 372……………………………………………………………
{
CInputDlg dlg;
CString str=dlg。GetInput(〃输入目录〃;〃输入新的目录名:〃);
if (str!=〃〃 && str。Left(1)!=〃”)
{
str+=〃”;
}
if (str!=〃〃)
{
m_lsSelectable。ResetContent();
int iResult=m_lsSelectable。Dir(0x17;str+〃*。*〃);
if (iResult==LB_ERR)
{
MessageBox(〃添加文件名出错!〃);
}
else if (iResult==LB_ERRSPACE)
{
MessageBox(〃无法为列表框分配足够的内存!〃);
}
}
}
上面的代码首先定义一个类型为CInputDlg的成员变量,然后调用其
成员函数GetInput (我们已在前面讨论过该成员函数)获得用户输入
的列表目录名,如果用户输入的目录名不为空字符串,则调用类
CListBox的成员函数将指定目录下的文件名添加到列表框
IDC_LISTSELECTABLE中,如果添加失败,则弹出相应的出错信息。
为按钮IDC_BTNADD的BN_CLICKED命令添加下面的处理函数OnBtnAdd:
…………………………………………………………Page 373……………………………………………………………
void CListBoxDemoDlg::OnBtnAdd()
{
CString str;
for (int i=0; i…1; i……)
{
if (m_lsSelected。GetSel(i))
{
m_lsSelected。DeleteString(i);
}
}
…………………………………………………………Page 374……………………………………………………………
}
上面的代码从最末一项开始,检查列表框IDC_LISTSELECTED中每一项
的选定状态,如果发现该项被选定,则将它从列表框中删除。从列表
框中删除一项使用类CListBox的成员函数DeleteString,其参数为所
删除项的索引值。
l 注意:
l 我们在上面的代码 中使用的for循环为
l for (int i=m_lsSelected。GetCount()…1; i》…1; i……)
l {
l 。。。
l }
而不是
l for (int i=0; i