Meldungszuordnungsmakros (MFC)
Um Nachrichtenzuordnungen zu unterstützen, stellt MFC die folgenden Makros bereit:
Message-Map-Deklaration und Abgrenzungsmakros
Name | Beschreibung |
---|---|
DECLARE_MESSAGE_MAP |
Deklariert, dass eine Nachrichtenzuordnung in einer Klasse verwendet wird, um Nachrichten Funktionen zuzuordnen (muss in der Klassendeklaration verwendet werden). |
BEGIN_MESSAGE_MAP |
Beginnt mit der Definition einer Nachrichtenzuordnung (muss in der Klassenimplementierung verwendet werden). |
BEGIN_TEMPLATE_MESSAGE_MAP |
Beginnt mit der Definition einer Nachrichtenzuordnung für einen Klassentyp, der ein einzelnes Vorlagenargument enthält. |
END_MESSAGE_MAP |
Beendet die Definition einer Nachrichtenzuordnung (muss in der Klassenimplementierung verwendet werden). |
Nachrichtenzuordnungsmakros
Name | Beschreibung |
---|---|
ON_COMMAND |
Gibt an, welche Funktion eine angegebene Befehlsmeldung behandelt. |
ON_COMMAND_EX |
Gibt an, welche Funktion eine angegebene Befehlsmeldung behandelt. |
ON_CONTROL |
Gibt an, welche Funktion eine angegebene Steuerelementbenachrichtigung behandelt. |
ON_MESSAGE |
Gibt an, welche Funktion eine benutzerdefinierte Nachricht verarbeitet. |
ON_OLECMD |
Gibt an, welche Funktion einen Menübefehl von einem DocObject oder seinem Container verarbeitet. |
ON_REGISTERED_MESSAGE |
Gibt an, welche Funktion eine registrierte benutzerdefinierte Nachricht behandelt. |
ON_REGISTERED_THREAD_MESSAGE |
Gibt an, welche Funktion eine registrierte benutzerdefinierte Nachricht verarbeitet, wenn Sie über eine CWinThread Klasse verfügen. |
ON_THREAD_MESSAGE |
Gibt an, welche Funktion eine benutzerdefinierte Nachricht verarbeitet, wenn Sie über eine CWinThread Klasse verfügen. |
ON_UPDATE_COMMAND_UI |
Gibt an, welche Funktion eine angegebene Aktualisierungsbefehlsmeldung der Benutzeroberfläche behandelt. |
Nachrichtenzuordnungsbereich-Makros
Name | Beschreibung |
---|---|
ON_COMMAND_RANGE |
Gibt an, welche Funktion den Bereich der Befehls-IDs behandelt, die in den ersten beiden Parametern für das Makro angegeben sind. |
ON_UPDATE_COMMAND_UI_RANGE |
Gibt an, welcher Updatehandler den Bereich der Befehls-IDs behandelt, die in den ersten beiden Parametern für das Makro angegeben sind. |
ON_CONTROL_RANGE |
Gibt an, welche Funktion Benachrichtigungen aus dem Bereich der Steuerelement-IDs verarbeitet, die in den zweiten und dritten Parametern für das Makro angegeben sind. Der erste Parameter ist eine Steuerelementbenachrichtigung, z BN_CLICKED . B. . . |
Weitere Informationen zu Nachrichtenzuordnungen, die Deklaration und Abgrenzung von Makros für die Nachrichtenzuordnung sowie die Nachrichtenzuordnungsmakros finden Sie unter "Nachrichtenzuordnungen" und "Nachrichtenbehandlung" und "Zuordnungsthemen". Weitere Informationen zu Nachrichtenzuordnungsbereichen finden Sie unter Handler für Message-Map Ranges.
BEGIN_MESSAGE_MAP
Beginnt mit der Definition Ihrer Nachrichtenzuordnung.
Syntax
BEGIN_MESSAGE_MAP( theClass, baseClass )
Parameter
theClass
Gibt den Namen der Klasse an, deren Nachrichtenzuordnung dies ist.
baseClass
Gibt den Namen der Basisklasse von theClass
.
Hinweise
Starten Sie in der Implementierungsdatei (.cpp), die die Memberfunktionen für Ihre Klasse definiert, die Nachrichtenzuordnung mit dem BEGIN_MESSAGE_MAP
Makro, fügen Sie dann Makroeinträge für jede Ihrer Nachrichtenhandlerfunktionen hinzu, und schließen Sie die Nachrichtenzuordnung mit dem END_MESSAGE_MAP
Makro ab.
Weitere Informationen zu Nachrichtenzuordnungen finden Sie unter Message Maps
Beispiel
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
ON_WM_CREATE()
END_MESSAGE_MAP()
Anforderungen
Header: afxwin.h
BEGIN_TEMPLATE_MESSAGE_MAP
Beginnt mit der Definition einer Nachrichtenzuordnung für einen Klassentyp, der ein einzelnes Vorlagenargument enthält.
Syntax
BEGIN_TEMPLATE_MESSAGE_MAP( theClass, type_name, baseClass )
Parameter
theClass
Gibt den Namen der Klasse an, deren Nachrichtenzuordnung dies ist.
type_name
Der Name des für die Klasse angegebenen Vorlagenparameters.
baseClass
Gibt den Namen der Basisklasse von theClass
.
Hinweise
Dieses Makro ähnelt dem BEGIN_MESSAGE_MAP
Makro. Dieses Makro ist jedoch für Klassen vorgesehen, die ein einzelnes Vorlagenargument enthalten.
Starten Sie im Abschnitt zur Methodenimplementierung Ihrer Klasse die Nachrichtenzuordnung mit dem BEGIN_TEMPLATE_MESSAGE_MAP
Makro. Fügen Sie dann Makroeinträge für jede Ihrer Nachrichtenhandlermethoden wie für eine Standardnachrichtenzuordnung hinzu. Wie beim BEGIN_MESSAGE_MAP
Makro schließen Sie die Nachrichtenzuordnung der Vorlage mit dem END_MESSAGE_MAP
Makro ab.
Weitere Informationen zum Implementieren von Nachrichtenzuordnungen für Vorlagenklassen finden Sie unter How to: Create a Message Map for a Template Class.
Anforderungen
Header: afxwin.h
DECLARE_MESSAGE_MAP
Deklariert, dass die Klasse eine Nachrichtenzuordnung definiert. Jede CCmdTarget
abgeleitete Klasse in Ihrem Programm muss eine Nachrichtenzuordnung zum Verarbeiten von Nachrichten bereitstellen.
Syntax
DECLARE_MESSAGE_MAP( )
Hinweise
Verwenden Sie das DECLARE_MESSAGE_MAP
Makro am Ende der Klassendeklaration. Verwenden Sie dann in der datei .cpp, die die Memberfunktionen für die Klasse definiert, das BEGIN_MESSAGE_MAP
Makro, Makroeinträge für jede Ihrer Nachrichtenhandlerfunktionen und das END_MESSAGE_MAP
Makro.
Hinweis
Wenn Sie ein Element danach DECLARE_MESSAGE_MAP
deklarieren, müssen Sie einen neuen Zugriffstyp (public
, private
oder protected
) für sie angeben.
Weitere Informationen zu Nachrichtenzuordnungen und dem DECLARE_MESSAGE_MAP
Makro finden Sie unter "Nachrichtenbehandlung" und "Zuordnungsthemen".
Beispiel
class CMainFrame : public CMDIFrameWnd
{
DECLARE_MESSAGE_MAP()
// Remainder of class declaration omitted.
Anforderungen
Header: afxwin.h
END_MESSAGE_MAP
Beendet die Definition Ihrer Nachrichtenzuordnung.
Syntax
END_MESSAGE_MAP( )
Hinweise
Weitere Informationen zu Nachrichtenzuordnungen und dem END_MESSAGE_MAP
Makro finden Sie unter "Nachrichtenbehandlung" und "Zuordnungsthemen".
Anforderungen
Header: afxwin.h
ON_COMMAND
Dieses Makro ordnet einer Memberfunktion eine Befehlsmeldung zu.
Syntax
ON_COMMAND( commandId, memberFxn )
Parameter
commandId
Die Befehls-ID.
memberFxn
Der Name der Meldungshandlerfunktion, der der Befehl zugeordnet ist.
Hinweise
Es gibt an, welche Funktion eine Befehlsmeldung von einem Befehlsbenutzeroberflächenobjekt wie einem Menüelement oder einer Symbolleistenschaltfläche verarbeitet.
Wenn ein Befehlszielobjekt eine Windows-Nachricht WM_COMMAND
mit der angegebenen ID empfängt, wird die Memberfunktion memberFxn
aufgerufen, ON_COMMAND
um die Nachricht zu verarbeiten.
Dient ON_COMMAND
zum Zuordnen eines einzelnen Befehls zu einer Memberfunktion. Dient ON_COMMAND_RANGE
zum Zuordnen eines Bereichs von Befehls-IDs zu einer Memberfunktion. Nur ein Nachrichtenzuordnungseintrag kann einer bestimmten Befehls-ID entsprechen. Das heißt, Sie können einen Befehl nicht mehreren Handlern zuordnen. Weitere Informationen und Beispiele finden Sie unter "Nachrichtenbehandlung" und "Zuordnungsthemen".
Beispiel
BEGIN_MESSAGE_MAP(CMFCListViewDoc, CDocument)
ON_COMMAND(ID_MYCOMMAND, &CMFCListViewDoc::OnMycommand)
END_MESSAGE_MAP()
Anforderungen
Header: afxmsg_.h
ON_COMMAND_EX
Erweiterte Befehlshandlerelementfunktion.
Syntax
ON_COMMAND_EX(commandId, memberFxn);
Parameter
commandId
Die Befehls-ID.
memberFxn
Der Name der Meldungshandlerfunktion, der der Befehl zugeordnet ist.
Hinweise
Für erweiterte Verwendungsmöglichkeiten steht eine erweiterte Form von Befehlsnachrichtenhandlern zur Verfügung. Das ON_COMMAND_EX
Makro wird für solche Nachrichtenhandler verwendet und stellt eine Obermenge der ON_COMMAND
Funktionalität bereit. Erweiterte Befehlshandler-Memberfunktionen verwenden einen einzelnen Parameter, eine UINT
mit der Befehls-ID und geben eine zurück BOOL
. Der Rückgabewert sollte TRUE
darauf hinweisen, dass der Befehl behandelt wurde. Andernfalls wird das Routing an andere Befehlszielobjekte fortgesetzt.
Weitere Informationen finden Sie im technischen Hinweis [TN006: Message Maps]tm006-message-maps.md).
Anforderungen
Header-Datei: afxmsg_.h
ON_CONTROL
Gibt an, welche Funktion eine Benachrichtigung über benutzerdefinierte Steuerelemente behandelt.
Syntax
ON_CONTROL( wNotifyCode, commandId, memberFxn )
Parameter
wNotifyCode
Der Benachrichtigungscode des Steuerelements.
commandId
Die Befehls-ID.
memberFxn
Der Name der Meldungshandlerfunktion, der der Befehl zugeordnet ist.
Hinweise
Steuerelementbenachrichtigungen sind diejenigen, die von einem Steuerelement an das übergeordnete Fenster gesendet werden.
Es sollte genau eine ON_CONTROL
Makroanweisung in Ihrer Nachrichtenzuordnung für jede Steuerelementbenachrichtigung vorhanden sein, die einer Nachrichtenhandlerfunktion zugeordnet werden muss.
Weitere Informationen und Beispiele finden Sie unter "Nachrichtenbehandlung" und "Zuordnungsthemen".
Anforderungen
Header: afxmsg_.h
ON_MESSAGE
Gibt an, welche Funktion eine benutzerdefinierte Nachricht verarbeitet.
Syntax
ON_MESSAGE( message, memberFxn )
Parameter
message
Die Meldungs-ID.
memberFxn
Der Name der Nachrichtenhandlerfunktion, der die Nachricht zugeordnet ist.
Der Typ der Funktion muss sein afx_msg LRESULT (CWnd::*)(WPARAM, LPARAM)
.
Hinweise
Benutzerdefinierte Nachrichten sind alle Nachrichten, die keine standardmäßigen Windows-Nachrichten WM_MESSAGE
sind. Beim Auswählen einer Nachrichten-ID müssen Sie Werte innerhalb des Bereichs ( WM_USER
0x0400) verwenden, um 0x7FFF oder WM_APP
(0x8000) zu 0xBFFF. Weitere Informationen zu Nachrichten-IDs finden Sie unter WM_APP
.
Es sollte genau eine ON_MESSAGE
Makroanweisung in Ihrer Nachrichtenzuordnung für jede benutzerdefinierte Nachricht vorhanden sein, die einer Nachrichtenhandlerfunktion zugeordnet werden muss.
Hinweis
Zusätzlich zu benutzerdefinierten Nachrichten ON_MESSAGE
werden weniger häufige Windows-Nachrichten behandelt. Weitere Informationen finden Sie unter Message Maps.
Weitere Informationen und Beispiele finden Sie unter Nachrichtenbehandlungs- und Zuordnungsthemen und benutzerdefinierte Handler
Beispiel
#define WM_MYMESSAGE (WM_USER + 100)
BEGIN_MESSAGE_MAP(CMyWnd2, CWnd)
ON_MESSAGE(WM_MYMESSAGE, OnMyMessage)
END_MESSAGE_MAP()
// inside the class declaration
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
LRESULT CMyWnd2::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(wParam);
UNREFERENCED_PARAMETER(lParam);
// Handle message here.
return 0;
}
Anforderungen
Header: afxmsg_.h
ON_OLECMD
Leitet Befehle über die Befehlsversandschnittstelle IOleCommandTarget
weiter.
Syntax
ON_OLECMD( pguid, olecmdid, commandId )
Parameter
pguid
Bezeichner der Befehlsgruppe, zu der der Befehl gehört. Wird für die Standardgruppe verwendet NULL
.
olecmdid
Der Bezeichner des OLE-Befehls.
commandId
Die Menü-ID, Symbolleisten-ID, Schaltflächen-ID oder andere ID der Ressource oder des Objekts, die den Befehl ausgibt.
Hinweise
IOleCommandTarget
ermöglicht es einem Container, Befehle zu empfangen, die aus der Benutzeroberfläche eines DocObject stammen, und ermöglicht es dem Container, dieselben Befehle (z. B. "Neu", "Öffnen", "Speichern", "Drucken" im Menü "Datei" und "Kopieren", "Einfügen", "Rückgängig" usw.) an ein DocObject zu senden.
IOleCommandTarget
ist einfacher als ole Automation.IDispatch
IOleCommandTarget
basiert vollständig auf einem Standardsatz von Befehlen, die selten Argumente haben, und es sind keine Typinformationen beteiligt (auch für Befehlsargumente wird die Typsicherheit verringert). Wenn Sie Befehle mit Argumenten verteilen müssen, verwenden Sie COleServerDoc::OnExecOleCmd
.
Die IOleCommandTarget
Standardmenübefehle wurden von MFC in den folgenden Makros implementiert:
ON_OLECMD_CLEARSELECTION( )
Verteilt den Befehl "Löschen bearbeiten". Implementiert als:
ON_OLECMD(NULL, OLECMDID_CLEARSELECTION, ID_EDIT_CLEAR)
ON_OLECMD_COPY( )
Verteilt den Befehl "Kopieren bearbeiten". Implementiert als:
ON_OLECMD(NULL, OLECMDID_COPY, ID_EDIT_COPY)
ON_OLECMD_CUT( )
Verteilt den Befehl "Ausschneiden bearbeiten". Implementiert als:
ON_OLECMD(NULL, OLECMDID_CUT, ID_EDIT_CUT)
ON_OLECMD_NEW( )
Verteilt den Befehl "Datei neu". Implementiert als:
ON_OLECMD(NULL, OLECMDID_NEW, ID_FILE_NEW)
ON_OLECMD_OPEN( )
Verteilt den Befehl "Datei öffnen". Implementiert als:
ON_OLECMD(NULL, OLECMDID_OPEN, ID_FILE_OPEN)
ON_OLECMD_PAGESETUP( )
Verteilt den Befehl "Dateiseite einrichten". Implementiert als:
ON_OLECMD(NULL, OLECMDID_PAGESETUP, ID_FILE_PAGE_SETUP)
ON_OLECMD_PASTE( )
Verteilt den Befehl "Einfügen bearbeiten". Implementiert als:
ON_OLECMD(NULL, OLECMDID_PASTE, ID_EDIT_PASTE)
ON_OLECMD_PASTESPECIAL( )
Verteilt den Befehl 'Inhalte einfügen bearbeiten'. Implementiert als:
ON_OLECMD(NULL, OLECMDID_PASTESPECIAL, ID_EDIT_PASTE_SPECIAL)
ON_OLECMD_PRINT( )
Verteilt den Befehl "Datei drucken". Implementiert als:
ON_OLECMD(NULL, OLECMDID_PRINT, ID_FILE_PRINT)
ON_OLECMD_PRINTPREVIEW( )
Verteilt den Befehl "Dateidruckvorschau". Implementiert als:
ON_OLECMD(NULL, OLECMDID_PRINTPREVIEW, ID_FILE_PRINT_PREVIEW)
ON_OLECMD_REDO( )
Verteilt den Befehl "Wiederholen bearbeiten". Implementiert als:
ON_OLECMD(NULL, OLECMDID_REDO, ID_EDIT_REDO)
ON_OLECMD_SAVE( )
Verteilt den Befehl "Datei speichern". Implementiert als:
ON_OLECMD(NULL, OLECMDID_SAVE, ID_FILE_SAVE)
ON_OLECMD_SAVE_AS( )
Verteilt den Befehl "Datei speichern unter". Implementiert als:
ON_OLECMD(NULL, OLECMDID_SAVEAS, ID_FILE_SAVE_AS)
ON_OLECMD_SAVE_COPY_AS( )
Verteilt den Befehl "Datei speichern unter". Implementiert als:
ON_OLECMD(NULL, OLECMDID_SAVECOPYAS, ID_FILE_SAVE_COPY_AS)
ON_OLECMD_SELECTALL( )
Verteilt den Befehl "Alle bearbeiten". Implementiert als:
ON_OLECMD(NULL, OLECMDID_SELECTALL, ID_EDIT_SELECT_ALL)
ON_OLECMD_UNDO( )
Verteilt den Befehl "Rückgängig bearbeiten". Implementiert als:
ON_OLECMD(NULL, OLECMDID_UNDO, ID_EDIT_UNDO)
Anforderungen
Header: afxdocob.h
ON_REGISTERED_MESSAGE
Die Windows-Funktion RegisterWindowMessage
wird verwendet, um eine neue Fenstermeldung zu definieren, die garantiert im gesamten System eindeutig ist.
Syntax
ON_REGISTERED_MESSAGE( nMessageVariable, memberFxn )
Parameter
nMessageVariable
Die registrierte Fensternachrichten-ID-Variable.
memberFxn
Der Name der Nachrichtenhandlerfunktion, der die Nachricht zugeordnet ist.
Hinweise
Dieses Makro gibt an, welche Funktion die registrierte Nachricht behandelt.
Weitere Informationen und Beispiele finden Sie unter "Nachrichtenbehandlung" und "Zuordnungsthemen".
Beispiel
static UINT NEAR WM_FIND = RegisterWindowMessage(_T("COMMDLG_FIND"));
BEGIN_MESSAGE_MAP(CMyWnd3, CWnd)
ON_REGISTERED_MESSAGE(WM_FIND, OnFind)
END_MESSAGE_MAP()
Anforderungen
Header: afxmsg_.h
ON_REGISTERED_THREAD_MESSAGE
Gibt an, welche Funktion die von der Windows-Funktion RegisterWindowMessage
registrierte Nachricht behandelt.
Syntax
ON_REGISTERED_THREAD_MESSAGE(nMessageVariable, memberFxn )
Parameter
nMessageVariable
Die registrierte Fensternachrichten-ID-Variable.
memberFxn
Der Name der CWinThread
Funktion -message-handler, der die Nachricht zugeordnet ist.
Hinweise
RegisterWindowMessage
wird verwendet, um eine neue Fenstermeldung zu definieren, die garantiert im gesamten System eindeutig ist. ON_REGISTERED_THREAD_MESSAGE
muss anstelle einer ON_REGISTERED_MESSAGE
CWinThread
Klasse verwendet werden.
Anforderungen
Header: afxmsg_.h
ON_THREAD_MESSAGE
Gibt an, welche Funktion eine benutzerdefinierte Nachricht verarbeitet.
Syntax
ON_THREAD_MESSAGE( message, memberFxn )
Parameter
message
Die Meldungs-ID.
memberFxn
Der Name der CWinThread
Funktion -message-handler, der die Nachricht zugeordnet ist.
Hinweise
ON_THREAD_MESSAGE
muss anstelle einer ON_MESSAGE
CWinThread
Klasse verwendet werden. Benutzerdefinierte Nachrichten sind alle Nachrichten, die keine standardmäßigen Windows-Nachrichten WM_MESSAGE
sind. Es sollte genau eine ON_THREAD_MESSAGE
Makroanweisung in Ihrer Nachrichtenzuordnung für jede benutzerdefinierte Nachricht vorhanden sein, die einer Nachrichtenhandlerfunktion zugeordnet werden muss.
Anforderungen
Header: afxole.h
ON_UPDATE_COMMAND_UI
Dieses Makro gibt an, welche Funktion eine Benutzeroberflächenaktualisierungsbefehlsmeldung behandelt.
Syntax
ON_UPDATE_COMMAND_UI( messageId, memberFxn )
Parameter
messageId
Die Meldungs-ID.
memberFxn
Der Name der Nachrichtenhandlerfunktion, der die Nachricht zugeordnet ist.
Hinweise
Es sollte genau eine ON_UPDATE_COMMAND_UI
Makroanweisung in Der Nachrichtenzuordnung für jeden Aktualisierungsbefehl der Benutzeroberfläche vorhanden sein, der einer Meldungshandlerfunktion zugeordnet werden muss.
Weitere Informationen und Beispiele finden Sie unter "Nachrichtenbehandlung" und "Zuordnungsthemen".
Anforderungen
Header: afxole.h
ON_COMMAND_RANGE
Verwenden Sie dieses Makro, um einen zusammenhängenden Bereich von Befehls-IDs einer einzelnen Nachrichtenhandlerfunktion zuzuordnen.
Syntax
ON_COMMAND_RANGE( id1, id2, memberFxn )
Parameter
id1
Befehls-ID am Anfang eines zusammenhängenden Bereichs von Befehls-IDs.
id2
Befehls-ID am Ende eines zusammenhängenden Bereichs von Befehls-IDs.
memberFxn
Der Name der Meldungshandlerfunktion, der die Befehle zugeordnet sind.
Hinweise
Der Bereich der IDs beginnt mit id1
und endet mit id2
.
Dient ON_COMMAND_RANGE
zum Zuordnen eines Bereichs von Befehls-IDs zu einer Memberfunktion. Dient ON_COMMAND
zum Zuordnen eines einzelnen Befehls zu einer Memberfunktion. Nur ein Nachrichtenzuordnungseintrag kann einer bestimmten Befehls-ID entsprechen. Das heißt, Sie können einen Befehl nicht mehreren Handlern zuordnen. Weitere Informationen zum Zuordnen von Nachrichtenbereichen finden Sie unter Handler für Message-Map Ranges.
Es gibt keine automatische Unterstützung für Nachrichtenzuordnungsbereiche, daher müssen Sie das Makro selbst platzieren.
Beispiel
// The code fragment below shows how to use ON_COMMAND_RANGE macro
// to map a contiguous range of command IDs to a single message
// handler function (i.e. OnRangeCmds() in the sample below). In
// addition, it also shows how to use CheckMenuRadioItem() to check a
// selected menu item and makes it a radio item.
BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
ON_COMMAND_RANGE(ID_COMMAND_RANGECMD1, ID_COMMAND_RANGECMD3, &CChildFrame::OnRangeCmds)
END_MESSAGE_MAP()
void CChildFrame::OnRangeCmds(UINT nID)
{
CMenu* mmenu = AfxGetMainWnd()->GetMenu();
CMenu* submenu = mmenu->GetSubMenu(5);
submenu->CheckMenuRadioItem(ID_COMMAND_RANGECMD1, ID_COMMAND_RANGECMD3,
nID, MF_BYCOMMAND);
}
Anforderungen
Header: afxmsg_.h
ON_UPDATE_COMMAND_UI_RANGE
Ordnet einer einzelnen Updatenachrichtenhandlerfunktion einen zusammenhängenden Bereich von Befehls-IDs zu.
Syntax
ON_UPDATE_COMMAND_UI_RANGE( id1, id2, memberFxn )
Parameter
id1
Befehls-ID am Anfang eines zusammenhängenden Bereichs von Befehls-IDs.
id2
Befehls-ID am Ende eines zusammenhängenden Bereichs von Befehls-IDs.
memberFxn
Der Name der Update message-handler-Funktion, der die Befehle zugeordnet werden.
Hinweise
Aktualisieren Von Nachrichtenhandlern wird der Status von Menüelementen und Symbolleistenschaltflächen aktualisiert, die dem Befehl zugeordnet sind. Der Bereich der IDs beginnt mit id1
und endet mit id2
.
Es gibt keine automatische Unterstützung für Nachrichtenzuordnungsbereiche, daher müssen Sie das Makro selbst platzieren.
Anforderungen
Header: afxmsg_.h
ON_CONTROL_RANGE
Verwenden Sie dieses Makro, um einen zusammenhängenden Bereich von Steuerelement-IDs einer einzelnen Meldungshandlerfunktion für eine angegebene Windows-Benachrichtigung wie z BN_CLICKED
. B. zuzuordnen.
Syntax
ON_CONTROL_RANGE( wNotifyCode, id1, id2, memberFxn )
Parameter
wNotifyCode
Der Benachrichtigungscode, auf den der Handler reagiert.
id1
Befehls-ID am Anfang eines zusammenhängenden Bereichs von Steuerelement-IDs.
id2
Befehls-ID am Ende eines zusammenhängenden Bereichs von Steuerelement-IDs.
memberFxn
Der Name der Meldungshandlerfunktion, der die Steuerelemente zugeordnet sind.
Hinweise
Der Bereich der IDs beginnt mit id1
und endet mit id2
. Der Handler wird für die angegebene Benachrichtigung aufgerufen, die von einem der zugeordneten Steuerelemente stammt.
Es gibt keine automatische Unterstützung für Nachrichtenzuordnungsbereiche, daher müssen Sie das Makro selbst platzieren.
Weitere Informationen zum Implementieren von Handlerfunktionen für einen Bereich von Steuerelement-IDs finden Sie unter Handler für Message-Map Ranges.
Anforderungen
Header: afxmsg_.h
Siehe auch
ON_COMMAND
TN006: Meldungszuordnungen
COleCmdUI
Klasse
COleServerDoc::OnExecOleCmd
RegisterWindowMessage
Benutzerdefinierte Handler
CCmdUI
Klasse