Ein allgemeines Windows-Symbolleiste-Steuerelement hat integrierten Anpassungsfunktionen, einschließlich ein Dialogfeld System definierte Anpassung, die den Benutzer zum Einfügen, löschen oder neu anordnen von Symbolleisten-Schaltflächen. Die Anwendung bestimmt, ob die Anpassungsfunktionen stehen zur Verfügung und steuert das Ausmaß, zu dem der Benutzer die Symbolleiste anpassen können.
Sie können diese Anpassungsfunktionen zur Verfügung für dem Benutzer, indem Sie der Symbolleiste CCS_ADJUSTABLE Stil. Die Anpassungsfunktionen ermöglichen dem Benutzer eine Schaltfläche an eine neue Position ziehen oder eine Schaltfläche zu entfernen, indem Sie es aus der Symbolleiste. Darüber hinaus kann der Benutzer die Symbolleiste, um das Dialogfeld Symbolleiste anpassen, die ermöglicht dem Benutzer, hinzufügen, löschen und neu anordnen von Symbolleisten-Schaltflächen anzeigen doppelklicken. Die Anwendung kann das Dialogfeld anzeigen, indem mithilfe der Memberfunktion Anpassen.
Das Symbolleisten-Steuerelement sendet Benachrichtigungen an das übergeordnete Fenster in jedem Schritt des Anpassungsprozesses. Wenn der Benutzer die UMSCHALTTASTE gedrückt hält und beginnt, ziehen eine Schaltfläche, behandelt die Symbolleiste automatisch den Ziehvorgang. Die Symbolleiste sendet die Benachrichtigung TBN_QUERYDELETE für das übergeordnete Fenster um festzustellen, ob die Taste gelöscht werden kann. Der Ziehvorgang endet, wenn das übergeordnete Fenster FALSEzurückgibt. Andernfalls die Symbolleiste erfasst Mauseingaben und wartet, bis der Benutzer die Maustaste loslassen.
Wenn der Benutzer die Maustaste loslässt, bestimmt das Toolbar-Steuerelement die Position des Mauszeigers. Wenn der Cursor außerhalb der Symbolleiste befindet, wird die Schaltfläche gelöscht. Wenn der Cursor auf eine andere Symbolleisten-Schaltfläche befindet, sendet die Symbolleiste die TBN_QUERYINSERT -Benachrichtigung an das übergeordnete Fenster um festzustellen, ob eine Schaltfläche auf der linken Seite der angegebenen Schaltfläche eingefügt werden kann. Die Schaltfläche wird eingefügt, wenn das übergeordnete Fenster zurückgibt; Ansonsten ist es nicht. Die Symbolleiste sendet die TBN_TOOLBARCHANGE -Benachrichtigung um das Ende des Ziehvorgangs signalisieren.
Wenn der Benutzer einen Ziehvorgang beginnt ohne die UMSCHALTTASTE gedrückt halten, sendet das Toolbar-Steuerelement die TBN_BEGINDRAG -Nachricht an das Besitzerfenster. Eine Anwendung, die einen eigene Schaltfläche ziehen Code implementiert können diese Nachricht als Signal einen Ziehvorgang beginnen. Die Symbolleiste sendet die Benachrichtigung TBN_ENDDRAG um das Ende des Ziehvorgangs signalisieren.
Ein Toolbar-Steuerelement sendet Benachrichtigungen, wenn der Benutzer eine Symbolleiste passt, indem über das Dialogfeld Symbolleiste anpassen. Die Symbolleiste sendet die TBN_BEGINADJUST -Benachrichtigung, nachdem der Benutzer doppelklickt auf die Symbolleiste, aber bevor das Dialogfeld Feld erstellt wird. Anschließend beginnt die Symbolleiste Senden einer Reihe von TBN_QUERYINSERT -Benachrichtigungen, um festzustellen, ob die Symbolleiste Schaltflächen eingefügt werden können. Wenn das übergeordnete Fenster TRUEzurückgibt, stoppt die Symbolleiste TBN_QUERYINSERT -Benachrichtigungen senden. Wenn das übergeordnete Fenster nicht TRUE für jede Schaltfläche zurück, zerstört die Symbolleiste im Dialogfeld.
Als nächstes bestimmt das Toolbar-Steuerelement, wenn alle Schaltflächen aus der Symbolleiste gelöscht werden können, durch das Senden einer TBN_QUERYDELETE Benachrichtigungsmeldung für jede Schaltfläche in der Symbolleiste. Das übergeordnete Fenster zurückgibt TRUE an, dass eine Schaltfläche gelöscht werden dürfen; Andernfalls gibt es FALSEzurück. Die Symbolleiste fügt alle Symbolleisten-Schaltflächen zum Dialogfeld, aber grays diejenigen, die nicht gelöscht werden kann.
Wenn das Toolbar-Steuerelement Informationen über eine Schaltfläche im Dialogfeld Symbolleiste anpassen muss, sendet es die TBN_GETBUTTONINFO -Benachrichtigung, Angabe der Index der Schaltfläche, damit die Informationen benötigt, und die Adresse des eine TBNOTIFY- Struktur. Das übergeordnete Fenster muss die Struktur mit den entsprechenden Informationen füllen.
Das Dialogfeld Symbolleiste anpassen schließt eine Hilfeschaltfläche und eine Reset-Taste. Wenn der Benutzer die Schaltfläche Hilfe wählt, sendet das Toolbar-Steuerelement die TBN_CUSTHELP -Benachrichtigung. Das übergeordnete Fenster sollte reagieren, indem Sie Hilfeinformationen anzeigen. Das Dialogfeld sendet die TBN_RESET -Benachrichtigung, wenn der Benutzer die Reset-Taste auswählt. Diese Meldung signalisiert, dass die Symbolleiste ist etwa um das Dialogfeld zu initialisieren.
Diese Nachrichten sind alle WM_NOTIFY -Nachrichten, und sie können in Ihrem Besitzerfenster indem Meldungszuordnungseinträge der folgenden Form zu Ihrem Besitzerfenster Meldungszuordnung behandelt werden:
ON_NOTIFY ( wNotifyCode, IdControl, MemberFxn )
wNotifyCode
Meldung Nachricht-ID Code, z. B. TBN_BEGINADJUST.
idControl
Der Bezeichner für das Steuerelement Senden der Benachrichtigung.
memberFxn
Die Memberfunktion aufgerufen werden, wenn diese Mitteilung empfangen wird.
Die Memberfunktion würde mit den folgenden Prototyp deklariert werden:
afx_msgprivatevoidmemberFxn()NMHDR * pNotifyStruct,LRESULT*Ergebnis);
Wenn der Benachrichtigung-Meldungshandler einen Wert zurückgibt, sollte es in der LRESULT Ergebnis auf verweist gesagt.
Für jede Nachricht zeigt pNotifyStruct entweder auf eine NMHDR -Struktur oder eine TBNOTIFY- Struktur. Diese Strukturen sind unten beschrieben.:
Die NMHDR -Struktur enthält die folgenden Mitglieder:
typedef Struct Tag&NMHDR {}
HWND HwndFrom; Nbsp; / / Handle des Steuerelements senden
UINT IdFrom; / / Bezeichner des Steuerelements senden
UINT-Code; / / Benachrichtigungscode; siehe unten
} NMHDR
hwndFrom
Fenster-Handle des dem Steuerelement, das die Benachrichtigung gesendet wird. Um dieses Handle in einen CWnd -Zeiger zu konvertieren, verwenden Sie CWnd::FromHandle.
idFrom
Bezeichner des Steuerelements Senden der Benachrichtigung.
code
Benachrichtigungscode. Dieser Member kann ein Wert für ein Steuerelementtyp, z. B. TBN_BEGINADJUST oder TTN_NEEDTEXT, oder es kann eine von der gemeinsamen Anmeldung unten aufgeführten Werte:
Die TBNOTIFY- Struktur enthält die folgenden Mitglieder:
typedef Struct {}
&NMHDR Hdr; / / Informationen zu allen WM_NOTIFY-Nachrichten
Int iItem; / / Index der Schaltfläche zugeordneten Benachrichtigungen
TBUTTON TBUTTON; / / Infos über Schaltfläche zugeordnete Meldung
Int CchText; Nbsp; / / Anzahl der Zeichen im Schaltflächentext
LPSTR LpszText; / / Adresse des Schaltflächentextes
} TBNOTIFY, WEIT * LPTBNOTIFY
hdr
Informationen zu allen WM_NOTIFY -Nachrichten.
artikel
Index der Benachrichtigung zugeordnete Schaltfläche.
tBUTTON
TBUTTON -Struktur, die Informationen über die Symbolleisten-Schaltfläche zugeordneten die Benachrichtigung enthält.
cchText
Anzahl der Zeichen im Schaltflächentext.
lpszText
Zeiger auf die Schaltflächentext.
Die Benachrichtigungen, die die Symbolleiste sendet sind wie folgt: