Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 117


CreateStatusWindowA

Как можно узнать из описания функции, она требует передачи ей четырех аргументов. Первый аргумент, style, должен определять стиль создаваемого окна. У строки состояния есть единственный собственный стиль, SBARS_SIZEGRIP, который позволяет в правый угол строки состояния добавить «ручку» (внешне, честно говоря, на ручку это совсем не похоже) для изменения ее размеров. Но наличие у строки состояния единственного стиля не мешает комбинировать его со стандартными стилями окон, например с WS^CHILD и WSJVISIBLE.

Второй аргумент - IpszText - является указателем на строку, которая будет отображена в строке состояния сразу после ее создания. Ничего особенного здесь нет.

Третий аргумент - hwndParent - тоже не требует особых объяснений. Он является хэндлом родительского окна строки состояния.

Наконец, четвертый аргумент - uID - идентификатор окна со­стояния.

Попробуйте вызвать эту функцию (не забудьте про InitCommonControls()!) - и вы увидите, что в окне появилась строка состояния с текстом, определенным во втором аргументе этой функции.

После того, как строка состояния прорисована, иногда бывает необхо­димо разделить ее на несколько панелей для того, чтобы в каждой панели отображать информацию, логически не связанную с отображаемой в других панелях. Для того чтобы сделать это, необходимо послать строке состояния сообщение SB_SETPARTS. При этом wParam этого сообщения должен определять число панелей, a IParam должен содержать указатель

137

на массив целых чисел (число элементов массива должно быть равно wParam). Каждый элемент в этом массиве должен определять позицию (в координатах родительского окна) правой границы соответствующей части. Если элемент равен -I, то границей панели считается правая гра­ница строки состояния. В случае успешного завершения операции функ­ция, с помощью которой послано сообщение, возвращает TRUE. Значение FALSE должно заставить программиста поискать ошибку в собственной программе.

Приложение может определить число панелей, на которые разде­лена строка состояния, и их координаты с помощью сообщения SB_GETPARTS. Если IParam этого сообщения равен нулю, то функ­ция, пославшая сообщение, возвращает число панелей строки состоя­ния. При этом значение wParam роли не играет. Для того чтобы по­лучить координаты панелей, wParam должен определять число панелей, для которых нужно получить координаты, a IParam должен указывать на массив целых чисел, в который будут записаны эти координаты. В этом случае функция также возвращает число панелей. Если при обработке сообщения произошла какая-то ошибка, то функ­ция возвращает нулевое значение.




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



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