CToolBarCtrl: Obsługa Dostosowywanie powiadomień

Formant wspólnych narzędzi systemu Windows ma wbudowane dostosowywania funkcje, w tym okno dialogowe Dostosowywanie zdefiniowanych w systemie, które pozwalają użytkownikowi wstawianie, usunąć lub zmienić rozmieszczenie przycisków paska narzędzi. Wniosek określa, czy funkcje dostosowywania są dostępne i kontroluje zakres, do którego użytkownik może dostosować pasek narzędzi.

Można udostępnić te funkcje dostosowywania do użytkownika poprzez pasek narzędzi styl CCS_ADJUSTABLE . Funkcje dostosowywania użytkownikowi, przeciągnij przycisk do nowego położenia lub usuń przycisk przez przeciągnięcie go poza pasek narzędzi. Ponadto użytkownik może kliknij dwukrotnie narzędzi, aby wyświetlić okno dialogowe Dostosuj pasek narzędzi, który zezwala użytkownikowi na dodawanie, usuwanie i rozmieszczenie przycisków paska narzędzi. Aplikacja może wyświetlić okno dialogowe za pomocą funkcji członek Dostosuj.

Formantu toolbar wysyła komunikaty powiadamiające, aby oknie nadrzędnym na każdym etapie procesu dostosowywania. Jeśli użytkownik posiada klawisz SHIFT w dół, a rozpoczęciem przeciągania przycisku, pasek narzędzi automatycznie obsługuje operacji przeciągania. Pasek narzędzi wysyła wiadomość z powiadomieniem TBN_QUERYDELETE do okna nadrzędnego do określenia, czy przycisk mogą zostać usunięte. Operacji przeciągania kończy się, jeśli okno nadrzędne zwraca wartość FALSE. W przeciwnym razie paska narzędzi przechwytywanie sygnału wejściowego myszy i czeka na użytkownikowi zwolnij przycisk myszy.

Gdy użytkownik zwolni przycisk myszy, formantu toolbar określa położenie kursora myszy. Jeśli kursor znajduje się poza pasek narzędzi, skreśla się przycisk. Jeśli kursor znajduje się na inny przycisk paska narzędzi, paska narzędzi wysyła wiadomość z powiadomieniem TBN_QUERYINSERT do okna nadrzędnego do określenia, jeśli przycisk może dodaje się po lewej stronie przycisku danego. Ten przycisk jest wstawiany, jeżeli okno nadrzędne zwraca wartość TRUE; w przeciwnym wypadku jest nie. Pasek narzędzi wysyła wiadomość z powiadomieniem TBN_TOOLBARCHANGE aby zasygnalizować koniec operacji przeciągania.

Jeśli użytkownik rozpoczyna operację przeciągania bez przytrzymując klawisz SHIFT, formantu toolbar wysyła wiadomość z powiadomieniem TBN_BEGINDRAG aby oknie właściciela. Aplikacja, która implementuje własny kod przeciągania przycisku można użyć tę wiadomość jako sygnał do rozpoczęcia operacji przeciągania. Pasek narzędzi wysyła wiadomość z powiadomieniem TBN_ENDDRAG aby zasygnalizować koniec operacji przeciągania.

Formantu toolbar wysyła komunikaty powiadamiające, gdy użytkownik dostosowuje pasek narzędzi przy użyciu okna dialogowego Dostosuj pasek narzędzi. Pasek narzędzi wysyła wiadomość z powiadomieniem TBN_BEGINADJUST po użytkownik kliknie dwukrotnie pasek narzędzi, ale przed okna dialogowego pole jest tworzony. Następnie pasku rozpoczyna się, wysyłanie serii wiadomości powiadomień TBN_QUERYINSERT ustalenie, czy pasek narzędzi umożliwia przyciski dodaje się. Gdy okno nadrzędne zwraca wartość TRUE, pasek narzędzi zatrzymuje przesyłanie wiadomości powiadomień TBN_QUERYINSERT . Jeśli okno nadrzędne zwraca wartość TRUE dla dowolnego przycisku, pasek narzędzi niszczy okno dialogowe.

Następnie formantu toolbar określa, jeżeli wszystkie przyciski mogą zostać usunięte z paska narzędzi, wysyłając jedną wiadomość z powiadomieniem TBN_QUERYDELETE dla każdego przycisku na pasku narzędzi. Okno nadrzędne zwraca TRUE oznacza, że przycisk mogą zostać usunięte; w przeciwnym razie zwraca wartość FALSE. Pasek narzędzi dodaje wszystkie przyciski paska narzędzi do okna dialogowego, ale grays tych, które nie mogą zostać usunięte.

Ilekroć formantu toolbar potrzebuje informacji na temat przycisku w oknie dialogowym Dostosuj pasek narzędzi, wysyła wiadomość z powiadomieniem TBN_GETBUTTONINFO , określenie indeksu przycisku, dla której konieczne jest uzyskanie informacji i adresu struktury TBNOTIFY . Okno nadrzędne musi wypełnić struktury istotne informacje.

Okno dialogowe Dostosuj pasek narzędzi zawiera przyciski Pomoc i przycisk Resetuj. Gdy użytkownik wybiera przycisk Pomoc, formantu toolbar wysyła wiadomość z powiadomieniem TBN_CUSTHELP . Okno nadrzędne powinny odpowiadać wyświetlając informacje pomocy. Okno dialogowe wysyła wiadomość z powiadomieniem TBN_RESET , gdy użytkownik zaznaczy przycisk Resetuj. Komunikat sygnalizuje, że pasek narzędzi jest około zainicjować okno dialogowe.

Te wiadomości są wszystkie wiadomości WM_NOTIFY i ich może być obsługiwane w oknie właściciela przez dodanie wpisów wiadomości Mapa następującą postać do okna właściciela wiadomość mapę:

ON_NOTIFY ( wNotifyCode, idControl, memberFxn )

wNotifyCode

Kod identyfikator wiadomości powiadomienia, takich jak TBN_BEGINADJUST.

idControl

Identyfikator formantu wysłanie powiadomienia.

memberFxn

Funkcja członek ma być wywoływana po odebraniu powiadomienia.

Funkcji członek byłyby zgłaszane z następującym prototypie:

afx_msgnieważnememberFxn()NMHDR * pNotifyStruct,LRESULT*wynik);

Jeśli obsługa wiadomości powiadomień zwraca wartość, powinno ono umieścić w LRESULT wskazywanego przez wynik.

Dla każdej wiadomości pNotifyStruct wskazuje na strukturę NMHDR lub struktury TBNOTIFY . Struktury te są opisane poniżej:

Struktura NMHDR zawiera następujące składniki:

element TypeDef struct tag&NMHDR {}
HWND hwndFrom; nbsp; / / uchwyt sterowania wysyłanie wiadomości
UINT idFrom; / / identyfikator formantu wysyłanie wiadomości
UINT kod;  / / Kod powiadomienia; patrz poniżej
} NMHDR

hwndFrom

Dojście do okna kontroli, która wysyła powiadomienie. Aby przekonwertować ten uchwyt wskaźnika CWnd , użyj CWnd::FromHandle.

idFrom

Identyfikator formantu wysłanie powiadomienia.

kod

Kod powiadomienia. Ten element może być wartością specyficzne dla typu kontroli, takich jak TBN_BEGINADJUST lub TTN_NEEDTEXT, lub może być jednym z wspólnych wartości powiadomienia wymienionych poniżej:

Struktura TBNOTIFY zawiera następujące składniki:

element TypeDef struct {}
&NMHDR hdr; / / informacji wspólnych dla wszystkich wiadomości WM_NOTIFY
int towaru; / / indeksu przycisku skojarzony powiadomienia
TBBUTTON tbButton; / / Informacje o przycisku skojarzony powiadomienia
int cchText; nbsp;  / / liczenie znaków w tekście przycisku
LPSTR lpszText; / / adresu z tekst przycisku
} TBNOTIFY, ZNACZNIE * LPTBNOTIFY

hdr

Informacje odnoszące się do wszystkich wiadomości WM_NOTIFY.

towaru

Indeks przycisku skojarzony z powiadomień.

tbButton

Struktura TBBUTTON , zawierający informacje o przycisku paska narzędzi, związane ze zgłoszenia.

cchText

Liczba znaków w tekście przycisku.

lpszText

Wskaźnik tekst przycisku.

Notyfikacjach, które wysyła pasku narzędzi są następujące:

Index