各种有关文件的对话框的创建方法

来源:互联网 发布:ps mac版多少钱 编辑:程序博客网 时间:2024/06/18 17:14

如图所示,工程中列举了常用对话框的创建方法,如保存对话框,文件选择对话框,文件夹选择对话框。后续有更新。链接:工程源代码

保存对话框创建:

UpdateData(TRUE);
CString filename = "1.txt";
CFileDialog saveDlg(FALSE, NULL, filename);//第一参数为FALSE则是保存对话框,TRUE则是打开文件对话框

if (IDOK == saveDlg.DoModal())
{
m_save = saveDlg.GetPathName();
m_CSave.SetWindowTextA(m_save);
}

选择文件夹对话框,ulFlags有很多组合方法,可自由组合:

void CFileDiaDlg::OnSetFlags(){UpdateData(TRUE);if (m_check1){bi.ulFlags = BIF_RETURNONLYFSDIRS;}if (m_check2){bi.ulFlags = BIF_BROWSEINCLUDEFILES;}if (m_check3){bi.ulFlags = BIF_EDITBOX;}if (m_check1 && m_check3){bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_EDITBOX;}if (m_check2 && m_check3){bi.ulFlags = BIF_BROWSEINCLUDEFILES | BIF_EDITBOX;}if (m_check4){bi.ulFlags = BIF_USENEWUI;}if (m_check1 && m_check4){bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_USENEWUI;}if (m_check2 && m_check4){bi.ulFlags = BIF_BROWSEINCLUDEFILES | BIF_USENEWUI;}}void CFileDiaDlg::OnBnClickedFolderButton(){// TODO:  在此添加控件通知处理程序代码UpdateData(TRUE);ZeroMemory(&bi, sizeof(BROWSEINFO));bi.hwndOwner = m_hWnd;bi.lpszTitle = _T("请选择一个文件夹:");OnSetFlags();LPITEMIDLIST pidl = SHBrowseForFolder(&bi);BOOL bRet = FALSE;TCHAR szFolder[MAX_PATH * 2];szFolder[0] = _T('\0');if (pidl){if (SHGetPathFromIDList(pidl, szFolder)){bRet = TRUE;}IMalloc *pMalloc = NULL;if (SUCCEEDED(SHGetMalloc(&pMalloc)) && pMalloc){pMalloc->Free(pidl);pMalloc->Release();}m_folder = szFolder;m_CFolder.SetWindowTextA(m_folder);}}

文件选择对话框,dw也有很多组合方法,可按需选择组合:

void CFileDiaDlg::OnSetDw(){if (m_check5){dw = OFN_ALLOWMULTISELECT; //可以选择多个文件}if (m_check6){dw = OFN_CREATEPROMPT; //如果输入的文件名不存在,则返回询问是否创建消息框}if (m_check7){dw = OFN_FILEMUSTEXIST; //只能输入已存在的文件名}if (m_check8){dw = OFN_FORCESHOWHIDDEN; //可以显示隐藏的文件}}void CFileDiaDlg::OnBnClickedFileButton(){// TODO:  在此添加控件通知处理程序代码UpdateData(TRUE);OnSetDw();CFileDialog filedlg(TRUE, NULL, NULL, dw);if (IDOK == filedlg.DoModal()){m_file = filedlg.GetPathName();m_CFile.SetWindowTextA(m_file);}}




0 0
原创粉丝点击