Click here to Skip to main content
15,886,578 members
Articles / Desktop Programming / MFC

XBrowseForFolder - Wrapper for SHBrowseForFolder

Rate me:
Please Sign up or sign in to vote.
4.89/5 (62 votes)
7 Mar 2008CPOL4 min read 245.2K   5.2K   79  
XBrowseForFolder wraps the SHBrowseForFolder API, provides a way to specify an initial directory, and cleans up the SHBrowseForFolder dialog.
// XBrowseForFolderTestDlg.h : header file
//

#ifndef XBROWSEFORFOLDERTESTDLG_H
#define XBROWSEFORFOLDERTESTDLG_H

#include "XColorStatic.h"

/////////////////////////////////////////////////////////////////////////////
// CXBrowseForFolderTestDlg dialog

class CXBrowseForFolderTestDlg : public CDialog
{
// Construction
public:
	CXBrowseForFolderTestDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CXBrowseForFolderTestDlg)
	enum { IDD = IDD_XBROWSEFORFOLDERTEST_DIALOG };
	CComboBox	m_comboInitial;
	CXColorStatic	m_staticAsterisk1;
	CXColorStatic	m_staticAsterisk2;
	CXColorStatic	m_staticAsterisk3;
	CXColorStatic	m_staticAsterisk4;
	CXColorStatic	m_staticAsterisk5;
	CComboBox		m_comboRoot;
	CEdit			m_edtReturnCode;
	CEdit			m_edtFolder;
	BOOL			m_bEditBox;
	int				m_nRootIndex;
	CString			m_strInitialFolder;
	CString			m_strCaption;
	int				m_nInitialIndex;
	int		m_nInitial;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CXBrowseForFolderTestDlg)
protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;
	struct CSIDL
	{
		TCHAR * pszCsidl;
		int		nCsidl;
	};
	static const CSIDL m_nCsidl[];

	// Generated message map functions
	//{{AFX_MSG(CXBrowseForFolderTestDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnSHBrowseForFolder();
	afx_msg void OnXBrowseForFolder();
	afx_msg void OnInitial();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif //XBROWSEFORFOLDERTESTDLG_H

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior) Hans Dietrich Software
United States United States
I attended St. Michael's College of the University of Toronto, with the intention of becoming a priest. A friend in the University's Computer Science Department got me interested in programming, and I have been hooked ever since.

Recently, I have moved to Los Angeles where I am doing consulting and development work.

For consulting and custom software development, please see www.hdsoft.org.






Comments and Discussions