MFC选择目录对话框和选择文件对话框 [转]

2010-06-16 19:01

来自:http://www.cppblog.com/finehai/archive/2009/08/27/94578.html

在MFC编程中经常会需要用到选择目录和选择文件的界面,以下总结一下本人常用的这两种对话框的生成方法:

选择目录对话框

None.gif // 选择目录按钮
None.gif
void CDcPackerDlg::OnBnClickedDecgen()    
ExpandedBlockStart.gif
{
InBlock.gif    
char szPath[MAX_PATH];     //存放选择的目录路径
InBlock.gif
     CString str;
InBlock.gif
InBlock.gif     ZeroMemory(szPath,
sizeof(szPath));   
InBlock.gif
InBlock.gif     BROWSEINFO bi;   
InBlock.gif     bi.hwndOwner
= m_hWnd;   
InBlock.gif     bi.pidlRoot
= NULL;   
InBlock.gif     bi.pszDisplayName
= szPath;   
InBlock.gif     bi.lpszTitle
= "请选择需要打包的目录:";   
InBlock.gif     bi.ulFlags
= 0;   
InBlock.gif     bi.lpfn
= NULL;   
InBlock.gif     bi.lParam
= 0;   
InBlock.gif     bi.iImage
= 0;   
InBlock.gif    
//弹出选择目录对话框
InBlock.gif
     LPITEMIDLIST lp = SHBrowseForFolder(&bi);   
InBlock.gif
InBlock.gif    
if(lp && SHGetPathFromIDList(lp, szPath))   
ExpandedSubBlockStart.gif    
{
InBlock.gif         str.Format(
"选择的目录为 %s",   szPath);
InBlock.gif         AfxMessageBox(str);
InBlock.gif
InBlock.gif        dot.gif
ExpandedSubBlockEnd.gif     }

InBlock.gif    
else   
InBlock.gif         AfxMessageBox(
"无效的目录,请重新选择");   
ExpandedBlockEnd.gif}



选择文件对话框

None.gif CString CDcPackerDlg::BootOpenDialog()    // 返回选择的文件名称
ExpandedBlockStart.gif
{
InBlock.gif     CString strFile
= _T("");
InBlock.gif
InBlock.gif     CFileDialog     dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T(
"Describe Files (*.cfg)|*.cfg|All Files (*.*)|*.*||"), NULL);
InBlock.gif
InBlock.gif    
if (dlgFile.DoModal())
ExpandedSubBlockStart.gif    
{
InBlock.gif         strFile
= dlgFile.GetPathName();
ExpandedSubBlockEnd.gif     }

InBlock.gif
InBlock.gif    
return strFile;
ExpandedBlockEnd.gif}

None.gif
None.gif
// 加载文件按钮
None.gif
void CDcPackerDlg::OnBnClickedSelectdec()
ExpandedBlockStart.gif
{
InBlock.gif    
// TODO: Add your control notification handler code here
InBlock.gif
     m_strDescPath = "";        //类的成员变量
InBlock.gif
InBlock.gif    
//"打开文件"对话框,选择文件,返回其路径
InBlock.gif
     m_strDescPath = BootOpenDialog();
InBlock.gif
InBlock.gif    dot.gif
ExpandedBlockEnd.gif}

转载于:https://www.cnblogs.com/kangwang1988/archive/2011/09/09/2172710.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值