⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 directorydialog.h

📁 深入浅出Visual C++入门进阶与应用实例 随书光盘 作者 何志丹
💻 H
字号:
// DirectoryDialog.h: interface for the CDirectoryDialog class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DIRECTORYDIALOG_H__5B953025_E5B1_49CE_AA52_F77523A324B8__INCLUDED_)
#define AFX_DIRECTORYDIALOG_H__5B953025_E5B1_49CE_AA52_F77523A324B8__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////
//  文件名  : DirectoryDialog.h
//  描述    : 此类处理用户选择对话框
/////////////////////////////////////////////////////////////////////////
class CDirectoryDialog  
{	
public:
	enum Flag{SD_DIR=1,SD_FILE=2,SD_DIR_FILE=3};//SD_DIR只能选择文件夹SD_FILE=2只能选择文件SD_DIR_FILE可以同时选择文件及文件夹
	
	//构造析
	CDirectoryDialog();
	CDirectoryDialog(CString strIniKeyName);
	virtual ~CDirectoryDialog();
	
	//弹出一个对话框,让用户选择文件夹
	CString ShowDirectoryTree(CWnd *pBuddyWnd);//入口参数是相关联的窗口
	CString ShowDirectoryTree(CString strIniDir="");//入口参数是初如值

	//写或读取注册表(或ini)中的值
	void SetDefaultDirectory(CString strDefaultDirectory);
	CString GetDefaultDirectory();
		
	HWND		m_hwndOwner; //父窗口句柄    
    CString		m_strTitle;  //标题
    enum Flag	m_ulFlags;   //SD_DIR,值为1,只显示文件夹;SD_DIR_FILE,值为3显示文件和文件夹,默认只显示文件夹  
    	
	//注册表或ini文件的相关信息,记录上次打开的文件夹
	CString m_strIniAppName ;
	CString m_strIniKeyName ;
			
private:
	void init();//初化成员变量
	static CString GetShortDir(CString strDir,long nMaxLength =45);//将长路径名转化成短路径名
	UINT GetStyle(enum Flag flag);//将风格转化成SHBrowseForFolder的风格
	CString GetDefaultTitle();//得到默认标题
	HWND GetDefaultOwnerHwnd();//得到默认窗口
	
	//回调函数,由SHBrowseForFolder调用
	static int CALLBACK  BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData);

	static UINT m_currentStyle;
};

#endif // !defined(AFX_DIRECTORYDIALOG_H__5B953025_E5B1_49CE_AA52_F77523A324B8__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -