Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:



Наши хостеры:

гостиница 3 звезды, день рождения.

--------------------------

Стандартные органы управления

            Из всего выше сказанного имеется одно исключение, касающееся полос просмотра. Во-первых, если необходимо иметь окно с полосами просмотра, то для этого достаточно при создании этого окна указать стили WS_VSCROLL и WS_HSCROLL для вертикальной и горизонтальной полос, соответственно. Во-вторых, вместо сообщения WM_COMMAND от вертикальной полосы просмотра поступает сообщение WM_VSCROLL, а от горизонтальной – WM_HSCROLL. Если полоса просмотра принадлежит окну, то параметр lParam равен нулю, в противном случае параметр lParam этих сообщений имеет тот же смысл, что и параметр lParamсообщения WM_COMMAND. Младшее слово wParam содержит код извещения, а старшее слово для извещений SB_THUMBPOSITION и SB_THUMBTRACK содержит позицию ползунка полосы просмотра, а для других извещений не используется. Параметры сообщений WM_VSCROLL и WM_HSCROLL не содержат идентификатора органа управления, хотя он указывается как параметр функции CreateWindow при создании полосы просмотра в произвольном месте на поверхности окна. Получить этот идентификатор можно при помощи функции GetWindowLong, указав в качестве первого ее параметра значение lParam, а в качестве второго - константу GWL_ID:

LONG GetWindowLong(HWND  hWnd, int  nIndex );     

 Более подробную информацию об этой функции можно получить из справочной документации или электронного справочника WIN32 Programmer’s Reference. Обработчики сообщений WM_VSCROLL и WM_HSCROLL должны возвращать нулевое значение.

            Для того, чтобы влиять на состояние органов управления, необходимо посылать сообщения органу управления. Для каждого органа управления определен свой набор сообщений, которые мы рассмотрим ниже. Сообщения обычно посылаются при помощи функции SendMessage, имеющей тот же набор параметров, что и функция окна:

предыдущаяследующая