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


Обработка извещений от Toolbar - часть 5


В документации SDK сказано, что обработчик извещения TBN_GETBUTTONINFO должен возвращать TRUE, если он предоставил информацию о нужной кнопке и FALSE в противном случае. Вы, конечно, можете возвращать значение FALSE для любого номера кнопки, не предоставляя никакой информации, однако при этом диалоговая панель настройки Toolbar будет работать неправильно. В частности, с ее помощью вы сможете удалить любую кнопку, но вернуть ее обратно будет уже невозможно.

TBN_QUERYDELETE

В процессе настройки органа управления Toolbar пользователь может удалить ненужные ему кнопки. Однако для некоторых кнопок вы можете запретить такую операцию, обеспечив специальную обработку извещения TBN_QUERYDELETE.

Если обработчик извещения вернет значение TRUE, пользователь сможет удалить кнопку, номер которой передается вместе с извещением в поле iItem. Если же обработчик вернет значение FALSE, кнопка останется на своем месте.

Ниже мы привели обработчик извещения TBN_QUERYDELETE, который запрещает удаление кнопки с номером ноль, но разрешает удаление любых других кнопок:

case TBN_QUERYDELETE: lptbn = (LPTBNOTIFY)pnmhdr; nItem = lptbn->; return (nItem == 0)? FALSE : TRUE; break;

TBN_QUERYINSERT

Извещение TBN_QUERYINSERT обрабатывается аналогично предыдущему.

Если обработчик этого извещения вернет значение TRUE, пользователь сможет вставить новую кнопку слева от той, номер которой передается в поле iItem. В противном случае вставка новой кнопки в данной позиции будет невозможна.

TBN_TOOLBARCHANGE

Извещение TBN_TOOLBARCHANGE посылается родительскому окну, создавшему Toolbar , когда пользователь изменил внешний вид этого органа управления.

В ответ родительское окно обычно посылает органу Toolbar сообщение TB_AUTOSIZE, которое вызывает автоматическое изменение размеров Toolbar:

case TBN_TOOLBARCHANGE: SendMessage(hwndTb, TB_AUTOSIZE, 0L, 0L); return TRUE; break;

TBN_BEGINADJUST

Это извещение поступает в родительское окно, когда пользователь приступил к настройке Toolbar . В ответ на него обработчик может вернуть любое значение, так как оно все равно будет проигнорировано.

TBN_ENDADJUST




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