POSITION GetStartPosition( ) const;
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·204·
函数返回值用于枚举选择的文件。若为NULL,则说明选择列表为空。
CFileDialog::GetNextPathNcom()函数用于获得下一个选择的文件名,其原型为:
CString GetNextPathNcom(
POSITION& pos
) const;
? 参数pos:指示前一个GetNexPathNcom()或GetStartPosition()函数设置的POSITION值。
当GetNextPathNcom()调用返回时会修改该参数,如果值为NULL,则说明到达列表结
尾。
? 函数返回值:获得下一个选择的文件路径名。
于是可以得到下面的代码:
//创建一个可以多选的文件对话框
CFileDialog dlg(TRUE, NULL,NULL,OFN_ALLOWMULTISELECT);
if (dlg.DoModal()==IDOK) //如果返回为确定,获得选择的文件名
{
POSITION pos;
pos= dlg.GetStartPosition(); //开始遍历用户选择列表
while (pos!=NULL) //如果列表中还有新的文件
{
CString filencom=GetNextPathNcom(pos); //获得新的被选定的文件
?? //对filencom 的文件进行处理
}
}
8.3.2 重载文件对话框
当用户需要文件对话框有更多的功能,则可以通过重载CFileDialog 类,并为文件对话框
添加新的控件完成。
本节中以一个重载文件对话框的例子介绍重载的步骤。该例为文件对话框添加一个“删
除”按钮,用于删除文件对话框中选定的文件,如图8-4 所示。
实现这个自定义的文件对话框主要分为下列3 个步骤:
图8-4 “打开”对话框
枫叶文学网www.fywxw.com
第8 章 文件cāo作
·205·
1.创建一个对话框模板
首先向工程的资源文件中创建一个新的对话框模板,将ID 设为IDD_MYFILEDIALOG。
然后设置模板风格属xìng如图8-5 所示。
图8-5 设置对话框模板的风格属xìng
然后向模板中添加“删除”按钮,ID 设置为IDC_DEL,并重新调整对话框的大小,如
图8-6 所示。
图8-6 为对话框模板添加控件
注意,在图8-6 中可以看到,新添加包含“删除”按钮的对话框模板是放在文件对话框
的底部。因此需要将对话框的模板设置为子窗口而且无边框,更重要的是要复选“Clip
siblings”和“Clip children”两个属xìng,使得文件对话框的原始控件可以得到恰当