如何打windows中的选择路径对话框(请附代码)
thank you
thank you
解决方案 »
- MFC对话框包含多个子对话框和C# winform控件失去焦点会锁死
- VC++编译的程序总是出现很多稀奇古怪的错误,怎么解决?
- =WM_CTLCOLOR??
- 大家散,我也散,祝广大软件工作者来年工资翻倍
- 我在VC2005里运行都正常,但是build出来的exe单独执行就不对,为什么?
- 关于 Windows 下的 GUI 项目 los-lib [更新:2008 年 7 月 10 日]
- 结构化数据类型转换
- 如何将多个Microsoft FlexGrid Control表格控件的控制变量传到一个函数中?
- 关于图标:CSDN中发贴后等级后面的图标的含义?
- CWinapp::CWinApp()函数求助(对不起,原贴我输错了,现在改过来)
- 怎样通知程序有新硬件的插拔
- 请推荐几本有关VC++屏幕输出(屏幕绘图、屏幕映射等)方面的书,谢谢
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);//查看结果是否正确
也给你一个例子吧: 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;
}
路径选择的应该是这样:
#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中
}