Шаг 274 - Класс CListBox, функция DIR и очистка списка

Эта функция позволяет быстро заполнить список именами файлов и каталогов. Давайте создадим пункт меню с именем DIR.

void CTestListDlg::OnTestDir() 
{
	// TODO: Add your command handler code here
}

Что представляет из себя эта функция ???

int Dir
( 
	UINT attr, 			// атрибут
	LPCTSTR lpszWildCard 		// шаблон
);

Атрибут - это число, которое устанавливает, что нужно отбирать для помещения в список.

0x0000 файлы для чтения и записи
0x0001 файлы только для чтения
0x0002 скрытые файлы
0x0004 системные файлы 
0x0010 каталоги 
0x0020 файлы и атрибутом архивный
0x4000 включать имена дисков 
0x8000 только указанного типа, если он не установлен,
	то указанного типа включаются как дополнительные

Шаблон это строка типа *.txt, которая позволяет отобрать файлы. Давайте попробуем выбрать файлы в наш список.

void CTestListDlg::OnTestDir() 
{
	m_List.ResetContent(); 
	m_List.Dir(0x0010,"c:\\*.*");
}

Для того, чтобы заполнить список нам нужно его очистить. Зачем нам название всяких стран вместе с файлами. Для этого я использовал функцию ResetContent().

void ResetContent( );

Она просто стирает все из памяти и освобождает список. Кстати, если Вы хотите заполнить список большим количеством значений, то очень эффективно использовать InitStorage().

int InitStorage
(
	int nItems,	// количество элементов
	UINT nBytes	// байтов на один
);

Если Вы так выделили память, то заполнение списка будет идти максимально быстро. Если памяти не хватит, то заполняться список будет как обычно.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 12.11.2000