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


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


// Ограничиваем пределы изменения текущей // позиции значениями от 1 до 200 if(nPosition > 200) nPosition = 200; if(nPosition < 1) nPosition = 1;

// Устанавливаем ползунок полосы просмотра // в соответствии с новым значением // текущей позиции SetScrollPos(hScroll, SB_CTL, nPosition, TRUE);

// Устанавливаем новый размер статического // органа управления MoveWindow(hStatic, 20, 40, nPosition, 15, TRUE);

return 0; }

// Обеспечиваем управление полосой просмотра // при помощи клавиатуры case WM_KEYDOWN: { // В зависимости от кода клавиши функция окна // посылает сама себе сообщения, которые // обычно генерируются полосой просмотра switch (wParam) { case VK_HOME: { SendMessage(hwnd, WM_HSCROLL, SB_TOP, 0L); break; } case VK_END: { SendMessage(hwnd, WM_HSCROLL, SB_BOTTOM, 0L); break; } case VK_LEFT: { SendMessage(hwnd, WM_HSCROLL, SB_LINEUP, 0L); break; } case VK_RIGHT: { SendMessage(hwnd, WM_HSCROLL, SB_LINEDOWN, 0L); break; } case VK_PRIOR: { SendMessage(hwnd, WM_HSCROLL, SB_PAGEUP, 0L); break; } case VK_NEXT: { SendMessage(hwnd, WM_HSCROLL, SB_PAGEDOWN, 0L); break; } } return 0; } case WM_DESTROY: { PostQuitMessage(0); return 0; } } return DefWindowProc(hwnd, msg, wParam, lParam); }

После инициализации приложения и создания главного окна приложения функция WinMain создает на базе предопределенного класса "scrollbar" орган управления - полосу просмотра. Для этого она вызывает функцию CreateWindow:

hScroll = CreateWindow("scrollbar", NULL, WS_CHILD | WS_VISIBLE | SBS_HORZ, 20, 60, 200, 15, hwnd, (HMENU) ID_SCROLL, hInstance, NULL);

В глобальной переменной nPosition хранится значение, соответствующее текущему положению ползунка. Сразу после создания полосы просмотра в эту переменную записывается значение 100.

Далее при помощи функции SetScrollRange функция WinMain задает диапазон полосы просмотра - от 1 до 200:

SetScrollRange(hScroll, SB_CTL, 1, 200, TRUE);

После этого ползунок устанавливается в позицию, соответствующую содержимому переменной nPosition:




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



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