54 lines
1.2 KiB
C++
54 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "shlobj.h"
|
|
|
|
class CPathDialog;
|
|
|
|
class CPathDialogSub : public CWnd
|
|
{
|
|
friend CPathDialog;
|
|
|
|
public:
|
|
CPathDialog* m_pdlg;
|
|
|
|
protected:
|
|
afx_msg void OnOK(); // OK button clicked
|
|
afx_msg void OnChangeEditPath();
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CPathDialog dialog
|
|
|
|
class CPathDialog
|
|
{
|
|
friend CPathDialogSub;
|
|
|
|
// Construction
|
|
public:
|
|
CPathDialog(LPCTSTR pszCaption = NULL, LPCTSTR pszTitle = NULL, LPCTSTR pszInitialPath = NULL, CWnd* pParent = NULL);
|
|
|
|
CString GetPathName();
|
|
virtual int DoModal();
|
|
|
|
static int Touch(LPCTSTR pszPath, BOOL bValidate = TRUE);
|
|
static int MakeSurePathExists(LPCTSTR pszPath);
|
|
static BOOL IsValidFileName(LPCTSTR pszFileName);
|
|
static int ConcatPath(LPTSTR pszRoot, LPCTSTR pszMorePath);
|
|
|
|
private:
|
|
static int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg,LPARAM lParam, LPARAM pData);
|
|
|
|
LPCTSTR m_pszCaption;
|
|
LPCTSTR m_pszInitialPath;
|
|
|
|
TCHAR m_szPathName[MAX_PATH];
|
|
|
|
BROWSEINFO m_bi;
|
|
HWND m_hWnd;
|
|
CWnd* m_pwndParent;
|
|
BOOL m_bSuccess;
|
|
|
|
CPathDialogSub m_dlg;
|
|
};
|