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

📄 drivel~1.cpp

📁 vc++net很不错的一个工具
💻 CPP
字号:
// DriveListBox.cpp : 实现文件
//

#include "stdafx.h"
#include "DriveSpace.h"
#include "DriveListBox.h"


// CDriveListBox

IMPLEMENT_DYNAMIC(CDriveListBox, CComboBoxEx)
CDriveListBox::CDriveListBox()
{
	m_pDriveStrings=NULL;
	m_pImageList=NULL;
}

CDriveListBox::~CDriveListBox()
{
	if( m_pImageList != NULL )
	{
		m_pImageList->Detach();
		delete m_pImageList;
	}

	if( m_pDriveStrings != NULL )
		delete[] m_pDriveStrings;
}


BEGIN_MESSAGE_MAP(CDriveListBox, CComboBoxEx)
END_MESSAGE_MAP()



// CDriveListBox 消息处理程序

int CDriveListBox::LoadItems(const bool bLargeIcons)
{
	if( m_pDriveStrings != NULL )
		return -1;

	int lAllDriveStrings=GetLogicalDriveStrings( 0, NULL );

	ASSERT( m_pDriveStrings == NULL );
	m_pDriveStrings=new CHAR[ lAllDriveStrings + sizeof( _T("")) ];
	if( GetLogicalDriveStrings( lAllDriveStrings, m_pDriveStrings ) != lAllDriveStrings - 1 )
		return -2;
	ASSERT( m_pDriveStrings != NULL );

	COMBOBOXEXITEM CBEItem;
	CBEItem.mask=CBEIF_IMAGE | CBEIF_SELECTEDIMAGE | CBEIF_TEXT | CBEIF_LPARAM;
	CBEItem.cchTextMax=0;
	CBEItem.iItem=-1;

	_TCHAR *pDriveString=m_pDriveStrings;
  int lDriveString = strlen( pDriveString );
	DWORD dIconSize=bLargeIcons ? SHGFI_LARGEICON : SHGFI_SMALLICON;

	while( lDriveString > 0 )
	{
		SHFILEINFO FileInfo;
		DWORD r=SHGetFileInfo( pDriveString, 0, &FileInfo, sizeof( FileInfo ),
			SHGFI_DISPLAYNAME | SHGFI_SYSICONINDEX | dIconSize );
		if( r == 0 )
		{
			TRACE0( "SHGetFileInfo函数调用失败!\n" );
		}
		else
		{
			CBEItem.pszText=FileInfo.szDisplayName;
			CBEItem.lParam  = ( LPARAM )pDriveString;
			CBEItem.iSelectedImage=CBEItem.iImage=FileInfo.iIcon;
			VERIFY( InsertItem( &CBEItem ) >= 0 );
		}
		pDriveString += lDriveString + 1;
		lDriveString = strlen( pDriveString );
	}

	ASSERT( m_pImageList == NULL );
	m_pImageList = new CImageList;

	SHFILEINFO FileInfo;
	VERIFY( m_pImageList->Attach(( HIMAGELIST )SHGetFileInfo( _T(".txt"),
		FILE_ATTRIBUTE_NORMAL, &FileInfo, sizeof( FileInfo ),
		SHGFI_USEFILEATTRIBUTES | SHGFI_SYSICONINDEX | dIconSize )));
	
	m_pImageList->SetBkColor( CLR_NONE );
	VERIFY( SetImageList( m_pImageList ) == NULL );

	return GetCount();
}

⌨️ 快捷键说明

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