Операционная система Microsoft Windows 3.1 для программиста -том 2


Листинг 2.28. Файл listdir\listdir.cpp - часть 3


// Если пользователь изменил выделенную // строку, выводим в окно новую // выделенную строку else if(HIWORD(lParam) == LBN_SELCHANGE) { int uSelectedItem, nSize; char Buffer[256]; HDC hdc;

// Определяем номер новой выделенной строки uSelectedItem = (int)SendMessage(hListBox, LB_GETCURSEL, 0, 0L);

if(uSelectedItem != LB_ERR) { // Получаем строку SendMessage(hListBox, LB_GETTEXT, uSelectedItem, (LPARAM)Buffer);

hdc = GetDC(hwnd); nSize = lstrlen(Buffer);

TextOut(hdc, 250, 60, (LPSTR)" ", 25); TextOut(hdc, 250, 60, (LPSTR)Buffer, nSize);

ReleaseDC(hwnd, hdc); } } }

// Сообщение от кнопки else if(wParam == ID_BUTTON) { int uSelectedItem; char Buffer[256];

// Определяем номер выделенной строки uSelectedItem = (int)SendMessage(hListBox, LB_GETCURSEL, 0, 0L);

if(uSelectedItem != LB_ERR) { // Получаем выделенную строку SendMessage(hListBox, LB_GETTEXT, uSelectedItem, (LPARAM)Buffer);

// Если выбрали имя каталога или диска, // пытаемся изменить сначала текущий // каталог, а затем текущий диск if(Buffer[0] == '[') { // Выделяем в выбранной строке имя каталога Buffer[lstrlen(Buffer) - 1] = '\0';

// Пытаемся изменить каталог if(chdir(&Buffer[1]) != 0) { // Если не удалось, значит выбрали имя // диска. В этом случае выделяем букву // имени диска и добавляем строку ":\\: Buffer[3] = '\0'; lstrcat(Buffer, ":\\");

// Изменяем текущий каталог if(chdir(&Buffer[2]) == 0) { // Преобразуем букву диска AnsiLowerBuff(&Buffer[2], 1);

// Устанавливаем новый диск setdisk(Buffer[2] - 'a'); } }

// Сбрасываем содержимое списка SendMessage(hListBox, LB_RESETCONTENT, 0, 0L);

// Заполняем список информацией о файлах // и каталогах в текущем каталоге, а также // вносим туда имена дисков SendMessage(hListBox, LB_DIR, DDL_READWRITE | DDL_READONLY | DDL_HIDDEN | DDL_SYSTEM | DDL_DIRECTORY | DDL_DRIVES | DDL_ARCHIVE, (LPARAM)(LPSTR)"*.*"); }

// Если выбрали файл, выводим его имя на экран else { MessageBox(hwnd, Buffer, szWindowTitle, MB_OK); } } } return 0; }




Начало  Назад  Вперед



Книжный магазин