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

📄 wzddrdlg.cpp

📁 良好的代码实现
💻 CPP
字号:
#include "stdafx.h"
#include "WzdDrDlg.h"
#include "Shlobj.h"

CString CWzdDirDlg::m_sRootDir;

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CWzdDirDlg::CWzdDirDlg()
{

}

CWzdDirDlg::~CWzdDirDlg()
{

}

CString CWzdDirDlg::GetDirectory(CWnd *pParent,LPCSTR lpszRoot,LPCSTR lpszTitle)
{
	CString str;
	BROWSEINFO bi;
    bi.hwndOwner=pParent->m_hWnd;	
    bi.pidlRoot=0;					
    bi.pszDisplayName=0;			
    bi.lpszTitle=lpszTitle;			
	bi.lpfn = BrowseCallbackProc;	
    bi.lParam=0;					
    bi.ulFlags=
		BIF_RETURNONLYFSDIRS |		
		BIF_STATUSTEXT |			
		0; 
	m_sRootDir=lpszRoot;

	LPITEMIDLIST lpItemId=::SHBrowseForFolder(&bi); 
	if (lpItemId)
	{
		LPTSTR szBuf=str.GetBuffer(MAX_PATH);
		::SHGetPathFromIDList(lpItemId, szBuf);
		::GlobalFree(lpItemId);
		str.ReleaseBuffer();
	}

	return str;
}

int CALLBACK BrowseCallbackProc(HWND hwnd,UINT msg,LPARAM lp, LPARAM pData)
{
	TCHAR buf[MAX_PATH];

	switch(msg) 
	{
		case BFFM_INITIALIZED: 
			strcpy(buf,CWzdDirDlg::m_sRootDir);
			::SendMessage(hwnd,BFFM_SETSELECTION,TRUE,(LPARAM)buf);
			break;

		case BFFM_SELCHANGED:
			if (::SHGetPathFromIDList((LPITEMIDLIST) lp ,buf)) 
				SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)buf);
			break;
	}
	return 0;
}

⌨️ 快捷键说明

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