Окт 16

Разделение строки состояния на поля

Если строка состояния используется в стандартном режиме, то вы должны разделить ее на отдельные поля при помощи отсылки сообщения SB_SETPARTS:
SendMessage(hwndStatusBar, SB_SETPARTS, nParts. (LPARAM)aWidths);
Здесь параметр nParts задает число полей, a aWidths — адрес целочисленного массива, каждый элемент которого определяет позицию (в клиентских координатах) правой границы соответствующего поля. Если элемент массива aWidths равен -1, то границей соответствующего поля считается правая граница строки состояния.
Обычно в каждое поле строки состояния выводится отдельное текстовое сообщение. Но вы можете также разместить в любом поле другой элемент управления, например индикатор процесса (Progress bar). При таком размещении полезно знать клиентские координаты этого поля, которые могут быть получены при помощи отправки сообщения SB_GETRECT:
SendMessage(hwndStatusBar. SB_GETRECT. iPart. (LPARAM)&rect); где iPart — номер поля, отсчитываемый от нуля, a rect — структура типа RECT, принимающая координаты поля.