windows程序开发中,如过涉及界面的部分 ,对于浏览对话框、打开对话框、保存对话框经常会遇到,下面看看如实使用。
一、浏览对话框
效果:
场合:可以用来设置路径,选择目录。
代码:
void CBrowseFolderDlg::OnBrowse()
{
// TODO: Add your control notification handler code here
BROWSEINFO bInfo;
bInfo.hwndOwner = m_hWnd; //父窗口句柄
bInfo.pidlRoot = NULL; //指定目录对话框的起始位置,NULL:桌面
bInfo.pszDisplayName = (LPSTR)(LPCTSTR)m_strPath; //接收选择的目录
bInfo.lpszTitle = _T("请选择合适的路径"); //目录对话框的标题
bInfo.ulFlags = BIF_EDITBOX; //可以订制目录对话框的样式
bInfo.lpfn = NULL; //回调函数,可以进一步设置
bInfo.lParam =0; //回调函数参数
bInfo.iImage =0; //回调函数参数
//目录对话框的弹出,返回选择的目录Id
LPITEMIDLIST lpItemIdList = SHBrowseForFolder(&bInfo);
//将Id转换为文件路径
if(lpItemIdList && SHGetPathFromIDList(lpItemIdList,
(LPSTR)(LPCTSTR)m_strPath)) {
m_editPath.SetWindowText(m_strPath);
}
}
二、打开对话框
效果:
场合:用于通过浏览方式,打开文件。
代码:
void CBrowseFolderDlg::OnOpen()
{
// TODO: Add your control notification handler code here
CFileDialog dlgOpenFile(
TRUE, //TRUE:打开对话框,FALSE:保存对话框
_T("*.csv"), //默认扩展名
_T("hello.csv"), //默认文件名
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, //对话框的一些特性,自己可以设定
_T("CSV 文件(*.csv)|*.csv|All files (*.*)|*.*||"));
dlgOpenFile.m_ofn.lpstrTitle = _T("Hello 打开!");//改变对话框的标题
int flag = dlgOpenFile.DoModal();
if (flag == IDOK){
m_strFile = dlgOpenFile.GetPathName();
m_editFile.SetWindowText(m_strFile);
}
}
三、保存对话框
效果:
场合:用于通过浏览方式,保存文件。
代码:
void CBrowseFolderDlg::OnSave()
{
// TODO: Add your control notification handler code here
CFileDialog dlgSaveFile(
FALSE, //TRUE:打开对话框,FALSE:保存对话框
"*.csv", //默认扩展名
"hello.csv", //默认文件名
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, //对话框的一些特性,自己可以设定
"CSV 文件(*.csv)|*.csv|All files (*.*)|*.*||");
dlgSaveFile.m_ofn.lpstrTitle = _T("Hello 保存!");//改变对话框的标题
int flag = dlgSaveFile.DoModal();
if (flag == IDOK){
m_strFile = dlgSaveFile.GetPathName();
m_editFile.SetWindowText(m_strFile);
}
}
源代码地址:猛点