Здравствуйте, MadRook, Вы писали:
MR>1. Как отследить то, что Бар "прилип" к границе клентской области окна(нужно, чтобы выровнять элемены управления)(необходимо имено сообщение или общий механизм реакции пррограммы на это действие)
А зачем это отслеживать? Элементы управления обычно выравниваются в обработчике WM_SIZE и этого достаточно.
MR>2. Вызываю SetBarSyle(GetBarStyle()|CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC), однако контрол не ресайзится, когда "прилеплен"
Эта константа — CBRS_SIZE_DYNAMIC — AFAIK, относится только к тулбарам. У
CDialogBar размер фиксированный, определяемый в ресурсах диалога, и данная константа просто игнорируется. Остальные указанные константы также не нужны, т.к. CDialogBar понимает только CBRS_TOP, CBRS_BOTTOM, CBRS_NOALIGN, CBRS_LEFT, CBRS_RIGHT (
здесь).
Вообще, CDialogBar — вещь примитивная, устаревшая, и его сейчас очень мало где используют в чистом виде (т.е. не в составе других контролов, а "как есть"). Если нужна полнофункциональная диалоговая панель с возможностью докинга и изменения размеров, см.
CPaneDialog. Однако, с ним, по слухам (сам я с CPaneDialog не работал),
бывают проблемы. Решение — использовать комбинацию
CDockablePane + CDialogBar или CDockablePane + CFormView.