各种有关文件的对话框的创建方法
2016-04-21 21:01
253 查看
如图所示,工程中列举了常用对话框的创建方法,如保存对话框,文件选择对话框,文件夹选择对话框。后续有更新。链接:工程源代码
保存对话框创建:
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有很多组合方法,可自由组合:
文件选择对话框,dw也有很多组合方法,可按需选择组合:
保存对话框创建:
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); } }
相关文章推荐
- 推荐!国外程序员整理的 C++ 资源大全
- LeetCode Palindrome Partitioning
- Python框架之Tornado(二)请求阶段
- 冲刺阶段第三天,4月21日
- ViewPage 大圣归来 原生示例
- Can you solve this equation?
- 使用Runnable接口实现线程
- FragmentTabHost的应用
- java环境下利用blind xxe来列目录和文件读取
- robotframework笔记20
- cached-query 将缓存和查询数据库高速连接起来的轻类库
- 工作总结04
- 动态规划---0-1背包问题
- iOS 和 swift 中常见的 Int、Int8、Int16、Int32和 Int64介绍
- 设计模式-13-代理模式
- Extjs5中HtmlEditor文本编辑器
- LeetCode *** 207. Course Schedule (Topological Sort )
- 威佐夫博弈(Wythoff Game)
- Mysql报错注入简单测试模型 20160416
- 克服粗心毛病的伪代码