133 lines
4.2 KiB
C++
133 lines
4.2 KiB
C++
// ==========================================================================
|
|
// Class Specification : COXDirectoryDialog
|
|
// ==========================================================================
|
|
|
|
// Header file : oxdirdlg.h
|
|
|
|
// Version: 9.3
|
|
|
|
// This software along with its related components, documentation and files ("The Libraries")
|
|
// is © 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is
|
|
// governed by a software license agreement ("Agreement"). Copies of the Agreement are
|
|
// available at The Code Project (www.codeproject.com), as part of the package you downloaded
|
|
// to obtain this file, or directly from our office. For a copy of the license governing
|
|
// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900.
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
// Properties:
|
|
// NO Abstract class (does not have any objects)
|
|
// YES Derived from CFileDialog
|
|
|
|
// YES Is a Cwnd.
|
|
// YES Two stage creation (constructor & Create())
|
|
// YES Has a message map
|
|
// YES Needs a resource (dialog template : FILEOPENORD)
|
|
|
|
// NO Persistent objects (saveable on disk)
|
|
// NO Uses exceptions
|
|
|
|
// //////////////////////////////////////////////////////////////////////////
|
|
|
|
// Desciption :
|
|
// This is new class derived from CFileDialog and that creates a new dialog box
|
|
// that allows the user to select only a directory. In Windows 95 you can specify
|
|
// EXPLORER look.
|
|
// For more information, read Knowledge Base article Q105497.
|
|
|
|
// Remark:
|
|
// This file uses resources.
|
|
// The reserved ID ranges are : 23040 -> 23059 and 53040 -> 53059
|
|
|
|
// Prerequisites (necessary conditions):
|
|
// ***
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
#ifndef __DIRDLG_H__
|
|
#define __DIRDLG_H__
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
|
|
#include "OXDllExt.h"
|
|
|
|
|
|
class OX_CLASS_DECL COXDirectoryDialog : public CFileDialog
|
|
{
|
|
// Data members -------------------------------------------------------------
|
|
public:
|
|
|
|
protected:
|
|
CString m_sTitle;
|
|
CString m_sFullDir;
|
|
CString m_sExistingDir;
|
|
BOOL m_bNewDirAllowed;
|
|
|
|
BOOL m_bAfterInit;
|
|
BOOL m_bExplorerOn95;
|
|
|
|
// flag that specifies if picked directory was created or already existed
|
|
BOOL m_bNewCreated;
|
|
|
|
private:
|
|
|
|
// Member functions ---------------------------------------------------------
|
|
public:
|
|
COXDirectoryDialog(LPCTSTR pszDefaultDir = NULL,
|
|
LPCTSTR pszTitle = NULL, BOOL bNewDirAllowed = FALSE,
|
|
DWORD dwFlags = OFN_HIDEREADONLY, CWnd* pParentWnd = NULL);
|
|
// --- In : pszDefaultDir : The default dir
|
|
// pszTitle : The title of the dialog
|
|
// bNewDirAllowed : Whether the creation of a new
|
|
// (not yet existing) directory is allowed
|
|
// dwFlags : A combination of one or more flags that allow
|
|
// you to customize the dialog box.
|
|
// For a description of these flags, see the
|
|
// OPENFILENAME structure description in the Windows
|
|
// SDK documentation.
|
|
// pParentWnd :The directory dialog's parent or owner window
|
|
// --- Out :
|
|
// --- Returns :
|
|
// --- Effect : Contructor of object
|
|
// It will initialize the internal state
|
|
|
|
CString GetDirectory();
|
|
// --- In :
|
|
// --- Out :
|
|
// --- Returns : The directory the user specified or an empty string
|
|
// when the user pressed Cancel
|
|
// --- Effect :
|
|
|
|
inline BOOL GetWasNewCreated() { return m_bNewCreated; }
|
|
// --- In :
|
|
// --- Out :
|
|
// --- Returns: TRUE if picked directory was newly created by user request
|
|
// (works only when old fashion style used)
|
|
// --- Effect :
|
|
|
|
protected:
|
|
virtual void OnLBSelChangedNotify(UINT nIDBox, UINT iCurSel, UINT nCode);
|
|
|
|
virtual void OnOK();
|
|
virtual void OnCancel();
|
|
|
|
#ifdef WIN32
|
|
virtual void OnFolderChange();
|
|
static BOOL IsWin95();
|
|
CString GetFolderPath() const;
|
|
#endif
|
|
|
|
private:
|
|
|
|
// Message handlers ---------------------------------------------------------
|
|
protected:
|
|
//{{AFX_MSG(COXDirectoryDialog)
|
|
virtual BOOL OnInitDialog();
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
#endif // __DIRDLG_H__
|
|
// ==========================================================================
|