📄 drivel~1.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 + -