www.pudn.com > vc开发的精美界面.zip > BCGFileDialog.h


//******************************************************************************* 
// COPYRIGHT NOTES 
// --------------- 
// This source code is a part of BCGControlBar library. 
// You may use, compile or redistribute it as part of your application  
// for free. You cannot redistribute it as a part of a software development  
// library without the agreement of the author. If the sources are  
// distributed along with the application, you should leave the original  
// copyright notes in the source code without any changes. 
// This code can be used WITHOUT ANY WARRANTIES on your own risk. 
//  
// For the latest updates to this library, check my site: 
// http://welcome.to/bcgsoft 
//  
// Stas Levin  
//******************************************************************************* 
 
#if !defined(AFX_BCGFILEDIALOG_H__6975A857_62DC_11D2_8BF2_00A0C9B05590__INCLUDED_) 
#define AFX_BCGFILEDIALOG_H__6975A857_62DC_11D2_8BF2_00A0C9B05590__INCLUDED_ 
 
#if _MSC_VER >= 1000 
#pragma once 
#endif // _MSC_VER >= 1000 
// BCGFileDialog.h : header file 
// 
 
#include "bcgcontrolbar.h" 
 
///////////////////////////////////////////////////////////////////////////// 
// CBCGFileDialog dialog 
 
class BCGCONTROLBARDLLEXPORT CBCGFileDialog : public CFileDialog 
{ 
	DECLARE_DYNAMIC(CBCGFileDialog) 
 
public: 
	//---------------- 
	// Initialization: 
	//---------------- 
	CBCGFileDialog (LPCTSTR lpszCaption, 
		BOOL bNewPage, 
		LPCTSTR lpszDefExt = NULL, 
		LPCTSTR lpszFileName = NULL, 
		DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
		LPCTSTR lpszFilter = NULL, 
		CWnd* pParentWnd = NULL); 
	virtual ~CBCGFileDialog (); 
 
	void SetDlgIcon (HICON hIconBig, HICON hIconSmall = NULL); 
 
	void SetNewImagesList (CImageList* pImagesNew) 
	{ 
		m_pImagesNew = pImagesNew; 
	} 
 
	void SetLogoBitmap (CBitmap* pBmpLogo) 
	{ 
		m_pBmpLogo = pBmpLogo; 
	} 
 
    //fdncred 
    void SetExtraWidth(int iExtraWidth) 
    { 
        m_iExtraWidth = iExtraWidth; 
    } 
 
    void SetExtraHeight(int iExtraHeight) 
    { 
        m_iExtraHeight = iExtraHeight; 
    } 
 
	void AddNewItem (LPCTSTR lpszName, int iIconIndex); 
 
	//--------- 
	// Results: 
	//--------- 
	enum SelectedPage 
	{ 
		BCGFileNew, 
		BCGFileOpen, 
		BCGFileRecent 
	}; 
 
	SelectedPage GetPage () const 
	{ 
		return m_nPage; 
	} 
 
	const CString& GetRecentFilePath () const 
	{ 
		ASSERT (m_nPage == BCGFileRecent); 
		return m_strRecentFilePath; 
	} 
 
	int GetNewItemIndex () const 
	{ 
		ASSERT (m_nPage == BCGFileNew); 
		return m_iNewItemIndex; 
	} 
 
protected: 
 
	//------------------------ 
	// Internal notifications: 
	//------------------------ 
	void OnTabSelchange (); 
	void OnItemDblClick (); 
	void CollectControls (); 
 
	static LRESULT CALLBACK WindowProcNew(HWND hwnd,UINT message, WPARAM wParam, LPARAM lParam); 
 
protected: 
	//{{AFX_MSG(CBCGFileDialog) 
	//}}AFX_MSG 
	DECLARE_MESSAGE_MAP() 
 
	virtual void OnInitDone(); 
 
// Attributes: 
public: 
	static WNDPROC m_wndProc; 
 
protected: 
	CTabCtrl			m_wndTab; 
	CListCtrl			m_wndNewList; 
	CListCtrl			m_wndRecentList; 
	CList	m_lstFDControls; 
 
	CImageList*			m_pImagesNew; 
	CImageList			m_ImagesRecent; 
 
	CObList				m_lstNewItems; 
	BOOL				m_bNewPage; 
	SelectedPage		m_nPage; 
 
	CString				m_strCaption; 
 
	CString				m_strRecentFilePath; 
	int					m_iNewItemIndex; 
 
	CBitmap*			m_pBmpLogo; 
	CRect				m_rectLogo; 
 
	HICON				m_hIconBig; 
	HICON				m_hIconSmall; 
 
	int					m_iLogoAreaHeight; 
    //fdncred 
    int                 m_iExtraWidth; 
    int                 m_iExtraHeight; 
}; 
 
//{{AFX_INSERT_LOCATION}} 
// Microsoft Developer Studio will insert additional declarations immediately before the previous line. 
 
#endif // !defined(AFX_BCGFILEDIALOG_H__6975A857_62DC_11D2_8BF2_00A0C9B05590__INCLUDED_)