如何打windows中的选择路径对话框(请附代码)
thank you

解决方案 »

  1.   

    使用通用对话框控件commondialogctrol
      

  2.   

    CString filename;//用来存储你的返回路径
    char szFileters[] = "Text fiels (*.txt)|*.txt|All files (*.*)|*.*||";
    CFileDialog dlg (FALSE, "txt", "*.txt",
    OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters, this);
     if (dlg.DoModal() == IDOK) 
    {
     filename = opendlg.GetPathName();
    }
    AfxMessageBox(filename);//查看结果是否正确
      

  3.   

    对不起,我的回复发错了,另一个帖子的回复发到了这里.
    也给你一个例子吧:        char file[256]="";
    OPENFILENAME ofn;
    HINSTANCE hInstance; hInstance=(HINSTANCE)GetWindowLong(m_hWnd,GWL_HINSTANCE);

    memset(&ofn,0,sizeof(OPENFILENAME)); ofn.lStructSize=sizeof(OPENFILENAME);
    ofn.hwndOwner=m_hWnd;
    ofn.hInstance=hInstance;
    ofn.lpstrFilter="Fly3D map files (*.FMP)\0*.fmp\0";
    ofn.lpstrDefExt="";
    ofn.lpstrFile=file;
    ofn.nMaxFile=255;
    ofn.lpstrTitle="Open Your file";
    ofn.Flags=OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST;

    if (GetOpenFileName(&ofn))
    {
    strcpy(filename,file);//filename中保存得到的文件名
    if (file[0])
    return 1;
    }
      

  4.   

    楼上给的都是打开文件对话框的例子
    路径选择的应该是这样:
    #include<shobj.h>...
    ...BROWSEINFO bs;char PathName[MAX_PATH];memset(&bs,0,sizeof(bs));
    bs.hwndOwner=hwnd;
    bs.pidlRoot=NULL;
    bs.pszDisplayName=PathName;
    bs.lpszTitle="请选择目录";
    bs.ulFlags=BIF_RETURNONLYFSDIRS;
    //打开路径选择对话框
    lpdl=SHBrowseForFolder(&bs);if(SHGetPathFromIDList(lpdl,PathName))
    {
          //成功,用户选择的路径存在PathName中
    }