CW&nd::OnMeasureItemnbsp;

afx_msg void OnMeasureItem ( int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct );

Parametri

nIDCtl

L'ID del controllo.

lpMeasureItemStruct

Punti a una struttura di dati MEASUREITEMSTRUCT che contiene le dimensioni del controllo creato dal proprietario.

Osservazioni

Il framework chiama questa funzione membro dal framework per il proprietario di un pulsante creati dal proprietario, una casella combinata, casella di riepilogo o voce di menu quando il controllo viene creato.

Eseguire l'override di questa funzione membro e compilare la struttura di dati MEASUREITEMSTRUCT indicata da lpMeasureItemStruct e ritorno; Questo informa Windows delle dimensioni del controllo e consente di Windows elaborare correttamente l'interazione dell'utente con il controllo.

Se una casella di riepilogo o una casella combinata viene creata con lo stile LBS_OWNERDRAWVARIABLE o CBS_OWNERDRAWVARIABLE , il framework chiama questa funzione per il proprietario per ogni elemento del controllo; altrimenti questa funzione viene chiamata una volta.

Windows avvia la chiamata a OnMeasureItem per il proprietario di caselle combinate e caselle di riepilogo creati con lo stile OWNERDRAWFIXED prima di inviare il messaggio WM_INITDIALOG . Di conseguenza, quando il proprietario riceve questa chiamata, Windows non ha ancora stabilito l'altezza e la larghezza del carattere utilizzato nel controllo; chiamate di funzione e i calcoli che richiedono questi valori dovrebbero verificarsi nella funzione principale dell'applicazione o biblioteca.

Se l'elemento misurato è un CMenu, CListBox o un oggetto CComboBox , si chiama la funzione virtuale MeasureItem della classe appropriata. Eseguire l'override della funzione membro MeasureItem della classe del controllo appropriato per calcolare e impostare la dimensione di ciascun elemento.

OnMeasureItem verrà chiamato solo se si è creata la classe del controllo in fase di esecuzione, o si è creato con lo stile LBS_OWNERDRAWVARIABLE o CBS_OWNERDRAWVARIABLE . Se il controllo è stato creato da editor finestre, OnMeasureItem non verrà chiamato. Questo è perché il messaggio WM_MEASUREITEM viene inviato all'inizio del processo di creazione del controllo. Se voi sottoclasse utilizzando DDX_Control, SubclassDlgItemo SubclassWindow, le sottoclassi di solito avviene dopo il processo di creazione. Di conseguenza, non esiste alcun modo per gestire il messaggio WM_MEASUREITEM in funzione OnChildNotify del controllo, che è il meccanismo in MFC viene utilizzata per implementare ON_WM_MEASUREITEM_REFLECT.

&Notanbsp;  Questa funzione membro viene chiamata dal framework per consentire l'applicazione per la gestione di 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, che l'applicazione utilizzerà i parametri passati originariamente con il messaggio e non i parametri forniti alla funzione.

Panoramica di CWnd |nbsp; Membri della classe | Gerarchia Chart

Vedere anchenbsp;CMenu::MeasureItem, CListBox::MeasureItem, CComboBox::MeasureItem, WM_MEASUREITEM

Index