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


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


Структура tbButton типа TBBUTTON содержит описание кнопки. Мы уже рассказывали вам об этой структуре.

В поле cchText находится длина текстовой строки, соответствующей кнопке. Адрес этой строки передается через параметр pszText.

Во-вторых, для органа управления Toolbar определены дополнительные коды извещений:

Код извещения Toolbar Описание
TBN_BEGINADJUST Пользователь приступил к настройке Toolbar
TBN_BEGINDRAG Пользователь начал передвигать кнопку по поверхности Toolbar
TBN_ENDADJUST Пользователь закончил настройку Toolbar
TBN_ENDDRAG Пользователь закончил передвижение кнопки по поверхности Toolbar
TBN_CUSTHELP Пользователь нажал кнопку "Help" в диалоговой панели, которая была вызвана для настройки Toolbar . Позже мы расскажем об этой диалоговой панели
TBN_GETBUTTONINFO Это извещение окно Toolbar посылает в том случае, если ему нужна информация об одной из кнопок
TBN_QUERYDELETE С помощью этого извещения окно Toolbar запрашивает возможность удаления кнопки в процессе настройки
TBN_QUERYINSERT С помощью этого извещения окно Toolbar запрашивает возможность вставки новой кнопки слева от указанной в процессе настройки
TBN_RESET Пользователь нажал кнопку "Reset" в диалоговой панели, которая была вызвана для настройки Toolbar
TBN_TOOLBARCHANGE Пользователь изменил внешний вид Toolbar в результате выполнения настройки

Ниже мы привели фрагмент кода из приложения Smart Application, обрабатывающий извещения от органа управления Toolbar :

LRESULT WndProc_OnNotify(HWND hWnd, int idFrom, NMHDR* pnmhdr) { LPTOOLTIPTEXT lpToolTipText; LPTBNOTIFY lptbn; int nItem; static CHAR szBuf[128];

switch(pnmhdr->code) { case TTN_NEEDTEXT: lpToolTipText = (LPTOOLTIPTEXT)pnmhdr; LoadString(hInst, lpToolTipText->hdr.idFrom, szBuf, sizeof(szBuf)); lpToolTipText->lpszText = szBuf; break;

case TBN_GETBUTTONINFO: lptbn = (LPTBNOTIFY)pnmhdr; nItem = lptbn->iItem; lptbn->tbButton.iBitmap = tbButtons[nItem].iBitmap; lptbn->tbButton.idCommand = tbButtons[nItem].idCommand; lptbn->tbButton.fsState = tbButtons[nItem].fsState; lptbn->tbButton.fsStyle = tbButtons[nItem].fsStyle; lptbn->tbButton.dwData = tbButtons[nItem].dwData; lptbn->tbButton.iString = tbButtons[nItem].iString;




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