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); } }