Операционная система Windows 95 для программиста



         

Сообщения для Statusbar - часть 2


Перед тем как послать окну Statusbar сообщение SB_GETBORDERS, вы должны подготовить массив из трех переменных типа int. В первый элемент массива будет записана ширина горизонтальной рамки, во второй - ширина вертикальной рамки, и в третий - ширина рамки между прямоугольниками.

SB_GETPARTS

Определение количества областей в окне состояния и координат правых границ этих областей.

wParam = (WPARAM) nParts; // количество областей lParam = (LPARAM) (LPINT) aRightCoord; // массив координат

Через параметр nParts передается количество областей, информация о координатах правых границ которых записывается в массив aRightCoord.

Функция SendMessage, пославшая сообщение SB_GETPARTS, возвращает количество существующих в окне Statusbar областей или нуль при ошибке.

SB_GETRECT

Определение границ заданной области в окне Statusbar.

wParam = (WPARAM) iPart; // номер области lParam = (LPARAM) (LPRECT) lprc; // границы области

Границы области, номер которой задан через параметр iPart, передается приложению через структуру типа RECT. Адрес этой структуры должен быть указан в параметре lprc перед посылкой сообщения.

SB_GETTEXT

Извлечение текста из заданной области Statusbar.

wParam = (WPARAM) iPart; // номер области lParam = (LPARAM) (LPSTR) szText; // адрес буфера для текста

Функция SendMesage возвращает в младшем 16-разрядном слове длину текста, в старшем, константу 0, SBT_NOBORDERS, SBT_POPOUT или SBT_RTLREADING. Если родительское окно само рисует внутри области при обработке сообщения WM_DRAWITEM, возвращается 32-разрядное значение, которое было передано при посылке сообщения SB_SETTEXT.

Перед тем как извлекать текст из области Statusbar, необходимо определить размер буфера для записи соответствующей текстовой строки. Это можно сделать при помощи сообщения SB_GETTEXTLENGTH, описанного ниже.

SB_GETTEXTLENGTH

Определение длины строки для заданной области окна Statusbar.

wParam = (WPARAM) iPart; // номер области

Значение параметра lParam должно быть равно нулю.

Функция SendMesage возвращает точно такое же значение, как и для сообщения SB_GETTEXT.




Содержание  Назад