CWnd::OnMeasureItem
Il framework chiama la funzione membro dal framework per il proprietario di un pulsante del disegno personalizzato, una casella combinata, una casella di riepilogo, o di una voce di menu quando il controllo viene creato.
afx_msg void OnMeasureItem(
int nIDCtl,
LPMEASUREITEMSTRUCT lpMeasureItemStruct
);
Parametri
nIDCtl
ID del controllo.lpMeasureItemStruct
Punta a una struttura di dati MEASUREITEMSTRUCT contenente le dimensioni del controllo del disegno personalizzato.
Note
Eseguire l'override della funzione membro e inserire la struttura dei dati MEASUREITEMSTRUCT indicata da lpMeasureItemStruct e restituisce, rende Windows le dimensioni del controllo e Windows consente all'utente di un processo con il controllo correttamente.
Se una casella di riepilogo o di una casella combinata viene creato con lo stile CBS_OWNERDRAWVARIABLE o LBS_OWNERDRAWVARIABLE, il framework chiama la funzione per il proprietario per ciascun elemento del controllo; in caso contrario questa funzione viene chiamata una volta.
Windows avvia la chiamata a OnMeasureItem per il proprietario caselle combinate e caselle di riepilogo create con lo stile OWNERDRAWFIXED prima di inviare il messaggio WM_INITDIALOG.Pertanto, se il proprietario riceve questa chiamata, Windows non ha ancora determinato l'altezza e la larghezza del carattere utilizzato nel controllo; le chiamate di funzione e i calcoli che richiedono questi valori devono verificarsi nella funzione principale dell'applicazione o della raccolta.
Se l'elemento che viene misurato viene CMenu, CListBox o oggetto CComboBox, la funzione virtuale MeasureItem della classe appropriata viene chiamata.Eseguire l'override della funzione membro MeasureItem della classe appropriata del controllo per calcolare e impostare la dimensione di ciascun elemento.
OnMeasureItem verrà chiamato solo se la classe del controllo viene creata in fase di esecuzione, o viene creata con lo stile CBS_OWNERDRAWVARIABLE o LBS_OWNERDRAWVARIABLE.Se il controllo viene creato dall'editor finestra di dialogo, OnMeasureItem non verrà chiamato.Questo perché il messaggio WM_MEASUREITEM viene inviato inizio del processo di creazione del controllo.Se sottoclasse utilizzando DDX_Control, SubclassDlgItem, o SubclassWindow, la creazione di una sottoclasse in genere si verifica dopo che il processo di creazione.Di conseguenza, non è possibile gestire il messaggio WM_MEASUREITEM nella funzione OnChildNotify del controllo, che si utilizza il meccanismo MFC implementare ON_WM_MEASUREITEM_REFLECT.
[!NOTA]
Questa funzione membro viene chiamata dal framework per consentire l'applicazione per gestire un messaggio di Windows.I parametri passati alla funzione riflettono i parametri ricevuti dal framework quando il messaggio è stato ricevuto.Se si chiama l'implementazione della classe base di questa funzione, tale implementazione dei parametri passati originariamente con il messaggio e non i parametri forniti alla funzione.
Requisiti
Header: afxwin.h