CWnd::OnMeasureItem
Das Framework ruft diese Memberfunktion vom Framework für den Besitzer einer Ownerdrawnschaltfläche, des Kombinationsfelds, des Listenfelds oder des Menüelements auf, wenn das Steuerelement erstellt wird.
afx_msg void OnMeasureItem(
int nIDCtl,
LPMEASUREITEMSTRUCT lpMeasureItemStruct
);
Parameter
nIDCtl
Die ID des Steuerelements.lpMeasureItemStruct
Zeigt auf eine MEASUREITEMSTRUCT Datenstruktur, die die Dimensionen des Ownerdrawnsteuerelements enthält.
Hinweise
Überschreiben Sie diese Memberfunktion und füllen Sie die MEASUREITEMSTRUCT Datenstruktur aus, die von zu lpMeasureItemStruct und wieder angezeigt wird; dieses informiert Windows über die Abmessungen des Steuerelements und ermöglicht Windows zur Prozessbenutzerinteraktion mit dem Steuerelement ordnungsgemäß.
Wenn ein Listen- oder Kombinationsfeld mit dem LBS_OWNERDRAWVARIABLE oder CBS_OWNERDRAWVARIABLE Format erstellt wird, ruft das Framework diese Funktion für den Besitzer jedes Element im Steuerelement auf; andernfalls wird diese Funktion einmal aufgerufen.
Windows initiiert den Aufruf OnMeasureItem für den Besitzer von den Kombinationsfeldern und Listenfelder, die mit dem OWNERDRAWFIXED Format erstellt werden, bevor die WM_INITDIALOG Meldung sendet.Daher wird der Besitzer diesen Aufruf empfängt, mit Windows noch nicht die Höhe und Breite der Schriftarten bestimmt, die im - Steuerelement verwendet wird, Funktionsaufrufe und Berechnungen, die diese Werte benötigen, sollten in der Hauptfunktion der Anwendung oder der Bibliothek auftreten.
Wenn das Element, das gemessen wird, CMenu, CListBox oder CComboBox-Objekt ist, wird die virtuelle Funktion MeasureItem der entsprechenden Klasse aufgerufen.Überschreiben Sie die MeasureItem-Memberfunktion der entsprechenden Klasse des Steuerelements, um die Größe der einzelnen Elemente berechnen und festzulegen.
OnMeasureItem wird aufgerufen, wenn die Klasse des Steuerelements zur Laufzeit erstellt wird oder sie mit dem LBS_OWNERDRAWVARIABLE oder CBS_OWNERDRAWVARIABLE Format erstellt wird.Wenn das Steuerelement im Dialog-Editor erstellt wird, wird OnMeasureItem nicht aufgerufen.Dies liegt daran, dass die WM_MEASUREITEM Meldung früh im Erstellungsprozess des Steuerelements gesendet wird.Wenn Sie unterordnen, indem Sie DDX_Control, SubclassDlgItem oder SubclassWindow verwenden, tritt das Erstellen von Unterklassen von normalerweise nach der Erstellungsprozess auf.Daher gibt es keine Möglichkeit, die WM_MEASUREITEM Meldung in der OnChildNotify-Funktion des Steuerelements zu bearbeiten, die die dem Mechanismus MFC ist, ON_WM_MEASUREITEM_REFLECT zu implementieren.
Hinweis |
---|
Diese Memberfunktion wird vom Framework aufgerufen, um die Anwendung zu ermöglichen, eine Windows-Meldung zu bearbeiten.Die Parameter, die an die Funktion übergeben werden, geben die Parameter, die vom Framework empfangen werden, als die Nachricht empfangen wurde.Wenn Sie die Basisklassenimplementierung dieser Funktion aufrufen, verwendet diese Implementierung die Parameter, die mit der Meldung übergeben werden und nicht die Parameter, die an die Funktion bereitstellen. |
Anforderungen
Header: afxwin.h