Re: Сообщение прилепления CDialogBar'a
От: Hawk Россия  
Дата: 12.01.10 16:17
Оценка: 2 (1)
Здравствуйте, 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.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.