MFC的浏览对话框

1. CFileDialog  类,用于打开和另存为对话框

/
// CFileDialog - used for FileOpen... or FileSaveAs...

class CFileDialog : public CCommonDialog
{
 DECLARE_DYNAMIC(CFileDialog)

public:
// Attributes
 OPENFILENAME m_ofn; // open file parameter block

// 构造函数

 CFileDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
  LPCTSTR lpszDefExt = NULL,
  LPCTSTR lpszFileName = NULL,
  DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
  LPCTSTR lpszFilter = NULL,
  CWnd* pParentWnd = NULL);

// Operations
 virtual int DoModal();

 // Helpers for parsing file name after successful return
 // or during Overridable callbacks if OFN_EXPLORER is set
 CString GetPathName() const;  // return full path and filename
 CString GetFileName() const;  // return only filename
 CString GetFileExt() const;   // return only ext
 CString GetFileTitle() const; // return file title
 BOOL GetReadOnlyPref() const; // return TRUE if readonly checked

 // Enumerating multiple file selections
 POSITION GetStartPosition() const;
 CString GetNextPathName(POSITION& pos) const;

 // Helpers for custom templates
 void SetTemplate(UINT nWin3ID, UINT nWin4ID);
 void SetTemplate(LPCTSTR lpWin3ID, LPCTSTR lpWin4ID);

 // Other operations available while the dialog is visible
 CString GetFolderPath() const; // return full path
 void SetControlText(int nID, LPCSTR lpsz);
 void HideControl(int nID);
 void SetDefExt(LPCSTR lpsz);

// Overridable callbacks
protected:
 friend UINT CALLBACK _AfxCommDlgProc(HWND, UINT, WPARAM, LPARAM);
 virtual UINT OnShareViolation(LPCTSTR lpszPathName);
 virtual BOOL OnFileNameOK();
 virtual void OnLBSelChangedNotify(UINT nIDBox, UINT iCurSel, UINT nCode);

 // only called back if OFN_EXPLORER is set
 virtual void OnInitDone();
 virtual void OnFileNameChange();
 virtual void OnFolderChange();
 virtual void OnTypeChange();

// Implementation
#ifdef _DEBUG
public:
 virtual void Dump(CDumpContext& dc) const;
#endif

protected:
 BOOL m_bOpenFileDialog;       // TRUE for file open, FALSE for file save
 CString m_strFilter;          // filter string
      // separate fields with '|', terminate with '||\0'
 TCHAR m_szFileTitle[64];       // contains file title after return
 TCHAR m_szFileName[_MAX_PATH]; // contains full path name after return

 OPENFILENAME*  m_pofnTemp;

 virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
};

另存为对话框举例:

//---------------另存为对话框--------------
	CString szFilter = "DAT文件(*.bmp)|*.bmp|所有文件(*.*)|*.*||";
	CFileDialog dlg(FALSE,    //另存为
		"bmp", 
		NULL, 
		OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
		szFilter, 
		AfxGetMainWnd());
	dlg.DoModal();

	CString szFileName = dlg.GetFileName();//获取文件名,包括扩展名
	CString szPath = dlg.GetPathName();//获取完整路径,包括文件名

2. 浏览某一个目录的方法:

以下代码是从网上摘录的,非本人所创,原来的出处已经找不着了,请作者见谅。。。 感谢他们的共享精神。。。

	BROWSEINFO   bInfo; 
	ZeroMemory(&bInfo,sizeof(bInfo)); 
	bInfo.hwndOwner = m_hWnd; 
	TCHAR tchPath[255]; 
	bInfo.lpszTitle = _T( "DAT文件目录路径:   "); 
	bInfo.ulFlags = BIF_RETURNONLYFSDIRS;         
	
	LPITEMIDLIST lpDlist; 
	//用来保存返回信息的IDList,使用SHGetPathFromIDList函数转换为字符串 
	lpDlist = SHBrowseForFolder(&bInfo)   ;   //显示选择对话框 
	if(lpDlist != NULL) 
	{ 
		SHGetPathFromIDList(lpDlist,tchPath);//把项目标识列表转化成目录 
		//  TRACE(tchPath); 
		SetDlgItemText(IDC_EDIT1,tchPath);
	}
...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值