55 lines
1.6 KiB
C++
55 lines
1.6 KiB
C++
#ifndef ZZG_CXMLTREEFILEDLGHELPER_2009_01_05
|
|
#define ZZG_CXMLTREEFILEDLGHELPER_2009_01_05
|
|
#pragma once
|
|
#include "XMLTreeSubclassWnd.h"
|
|
class CXMLTreeFileDlgHelper;
|
|
|
|
//////////////////
|
|
// Used to subclass the file dialog
|
|
//
|
|
class CFileDialogHook : public CXMLTreeSubclassWnd {
|
|
protected:
|
|
CXMLTreeFileDlgHelper* m_pHelper; // ptr to helper class
|
|
virtual LRESULT WindowProc(UINT msg, WPARAM wp, LPARAM lp);
|
|
friend CXMLTreeFileDlgHelper;
|
|
};
|
|
|
|
//////////////////
|
|
// Used to subclass the file dialog's parent/owner
|
|
//
|
|
class CFileDialogOwnerHook : public CXMLTreeSubclassWnd {
|
|
protected:
|
|
CXMLTreeFileDlgHelper* m_pHelper; // ptr to helper class
|
|
CFileDialog* m_pDlg; // ptr your CFileDialog dialog derivate
|
|
HWND m_hwndParent; // HWND of real open file dialog
|
|
virtual LRESULT WindowProc(UINT msg, WPARAM wp, LPARAM lp);
|
|
void Init(CWnd* pOwner, CFileDialog* pDlg);
|
|
friend CXMLTreeFileDlgHelper;
|
|
};
|
|
|
|
//////////////////
|
|
// Class to help parsing file open dialog stuff
|
|
//
|
|
class CXMLTreeFileDlgHelper {
|
|
protected:
|
|
CFileDialogHook m_dlghook; // subclass dialog
|
|
CFileDialogOwnerHook m_ownerhook; // subclass dialog's owner
|
|
CFileDialog* m_pDlg; // your CFileDialog
|
|
BOOL m_bUpdateUI; // do idle UI update?
|
|
|
|
public:
|
|
CXMLTreeFileDlgHelper();
|
|
~CXMLTreeFileDlgHelper();
|
|
|
|
// You must call this from your dialog's OnInitDialog
|
|
void Init(CFileDialog* pDlg);
|
|
|
|
// usefull fns for you to call
|
|
CListCtrl* GetListCtrl(); // get list control
|
|
CString GetItemName(int i); // get filename w/o path
|
|
BOOL IsItemFolder(int i); // is this item a folder?
|
|
|
|
friend CFileDialogHook;
|
|
friend CFileDialogOwnerHook;
|
|
};
|
|
#endif |