afx_msg privatevoid OnMeasureItem ( Int nIDCtl, LPMEASUREITEMSTRUCT LpMeasureItemStruct );
Parameter
nIDCtl
Die ID des Steuerelements.
lpMeasureItemStruct
Verweist auf eine MEASUREITEMSTRUCT -Datenstruktur, die die Abmessungen der das Ownerdrawn-Steuerelement enthält.
Bemerkungen
Das Framework ruft diese Memberfunktion von Rahmen für den Besitzer von einem Ownerdrawn-Schaltfläche, Kombinationsfeld, Listenfeld oder Menüelement, wenn das Steuerelement erstellt wird.
Überschreiben Sie diese Memberfunktion, und füllen Sie die MEASUREITEMSTRUCT -Datenstruktur, auf den LpMeasureItemStruct und Rückkehr; Dies informiert Windows von den Abmessungen des Steuerelements und ermöglicht Windows Benutzerinteraktion mit dem Steuerelement ordnungsgemäß verarbeiten.
Wenn ein Listenfeld oder Kombinationsfeld mit den LBS_OWNERDRAWVARIABLE oder CBS_OWNERDRAWVARIABLE -Stil erstellt wird, ruft das Framework diese Funktion für den Eigentümer für jedes Element im Steuerelement; Andernfalls wird diese Funktion einmal aufgerufen.
Windows startet den Aufruf OnMeasureItem für den Besitzer der Kombinationsfelder und Listenfelder erstellt im Stil OWNERDRAWFIXED vor dem Senden der WM_INITDIALOG Nachricht. Als ein Ergebnis, wenn der Besitzer dieser Aufruf empfängt, hat Windows noch nicht die Höhe und Breite der im Steuerelement verwendete Schriftart festgelegt; Funktionsaufrufe und Berechnungen, die diese Werte erfordern sollten in der Hauptfunktion der Anwendung oder Bibliothek auftreten.
Wenn das Element zu messenden ein CMenuund CListBox CComboBox -Objekt ist, wird die virtuelle MeasureItem -Funktion der entsprechenden Klasse aufgerufen. Überschreiben Sie die MeasureItem -Memberfunktion der Klasse das entsprechende Steuerelement zu berechnen und legen Sie die Größe der einzelnen Elemente.
OnMeasureItem werden nur, wenn die Control-Klasse wird zur Laufzeit erstellt, oder es mit dem Format LBS_OWNERDRAWVARIABLE oder CBS_OWNERDRAWVARIABLE entsteht aufgerufen werden. Wenn das Steuerelement vom Dialogfeld-Editor erstellt wird, wird nicht OnMeasureItem aufgerufen werden. Dies ist da die WM_MEASUREITEM -Nachricht in den Erstellungsprozess des Steuerelements gesendet wird. Wenn Sie mithilfe von DDX_Controloder SubclassDlgItem SubclassWindow, das Erstellen von Unterklassen Unterklasse tritt in der Regel nach den Erstellungsprozess. Daher besteht keine Möglichkeit, die WM_MEASUREITEM in das Steuerelement OnChildNotify -Funktion, Meldungsbehandlung ist der Mechanismus, die, den MFC zum Implementieren des ON_WM_MEASUREITEM_REFLECT verwendet.
Hinweis&Nbsp; Dieser Member-Funktion wird aufgerufen, durch den Rahmen für die Anwendung, eine Windows-Meldung zu behandeln zu können. An Ihre Funktion übergebenen Parameter entsprechen die Parametern von Rahmen empfangen, wenn die Nachricht empfangen wurde. Wenn Sie die Basisklasse Implementierung dieser Funktion aufrufen, wird diese Implementierung verwendet ursprünglich mit der Meldung und nicht die Parameter, die Sie angeben, an die Funktion übergebenen Parameter.
CWnd Übersicht |nbsp; Member der Klasse | Hierarchiediagramm
Siehe auch&Nbsp;CMenu::MeasureItem, CListBox::MeasureItem, CComboBox::MeasureItem, WM_MEASUREITEM