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


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


// Перерисовываем список InvalidateRect(hListBox, NULL, TRUE);

// Создаем кнопку hButton = CreateWindow("button", "OK", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 250, 30, 50, 20, hwnd, (HMENU) ID_BUTTON, hInst, NULL);

return 0; }

// Когда главное окно приложения получает // фокус ввода, отдаем фокус списку case WM_SETFOCUS: { SetFocus(hListBox); return 0; }

case WM_COMMAND: { // Обработка извещения списка об ошибке if(wParam == ID_LIST) { // Преобразуем к типу unsigned, так как // константа LBN_ERRSPACE определена как // отрицательное число if(HIWORD(lParam) == (unsigned)LBN_ERRSPACE) { MessageBox(hwnd, "Мало памяти", szWindowTitle, MB_OK); }

// Если пользователь сделал двойной щелчок // по строке списка, выводим эту строку // на экран else if(HIWORD(lParam) == LBN_DBLCLK) { int uSelectedItem; char Buffer[256];

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

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

// Выводим ее на экран MessageBox(hwnd, (LPSTR)Buffer, szWindowTitle, MB_OK); } }

// Если пользователь изменил выделенную // строку, выводим в окно новую // выделенную строку 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];




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



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