directorydialog.h

来自「csdn10年中间经典帖子」· C头文件 代码 · 共 50 行

H
50
字号
// DirectoryDialog.h: interface for the CDirectoryDialog class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DIRECTORYDIALOG_H__E16BC3BD_C313_47F5_B456_02B9F5FA1136__INCLUDED_)
#define AFX_DIRECTORYDIALOG_H__E16BC3BD_C313_47F5_B456_02B9F5FA1136__INCLUDED_

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


enum Flag{SD_DIR=1,SD_DIR_FILE=3};

class  CDirectoryDialog  
{	
public:
	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);
};

#endif // !defined(AFX_DIRECTORYDIALOG_H__E16BC3BD_C313_47F5_B456_02B9F5FA1136__INCLUDED_)

⌨️ 快捷键说明

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