Aracılığıyla paylaş


CWnd::OnMeasureItem

Denetim oluşturulduğunda framework çerçevesi tarafından sahibi tarafından çizilen düğmesi, açılan kutu, liste kutusu veya menü öğesinin sahibi için bu üye işlevini çağırır.

afx_msg void OnMeasureItem(
   int nIDCtl,
   LPMEASUREITEMSTRUCT lpMeasureItemStruct 
);

Parametreler

  • nIDCtl
    Denetimin kimliği.

  • lpMeasureItemStruct
    İşaret eden bir MEASUREITEMSTRUCT sahibi tarafından çizilen denetimi boyutları içeren veri yapısı.

Notlar

Bu üye işlevi geçersiz kılabilir ve doldurmak MEASUREITEMSTRUCT tarafından için veri yapısı ulaşılan lpMeasureItemStruct ve return; Windows denetimin boyutlarını bildirir ve Windows'un düzgün denetimi ile kullanıcı etkileşimini işlemek için izin verir.

İle bir liste kutusu veya birleşik giriş kutusu oluşturduysanız, LBS_OWNERDRAWVARIABLE veya CBS_OWNERDRAWVARIABLE stili, framework çağıran bu işlev sahibinin; denetim her öğe için Aksi durumda bu işlevi bir kez çağrılır.

Windows Arama başlatan OnMeasureItem sahibi, açılan kutular ve liste kutuları ile oluşturulan için OWNERDRAWFIXED göndermeden önce stil WM_INITDIALOG ileti.Bu çağrı sahibi aldığında, sonuç olarak, Windows henüz denetiminde kullanılan yazı tipi genişliği ve yüksekliği saptayamadı; uygulama veya kitaplığın ana işlevi, işlev çağrılarını ve bu değerler gerektiren hesaplamalar gerçekleşmelidir.

Ölçülen madde ise, bir CMenu, CListBox veya CComboBox nesnesi, sonra MeasureItem sanal işlevi uygun sınıfın adı verilir.Geçersiz kılma MeasureItem hesaplamak ve her öğenin boyutunu ayarlamak için uygun denetimin sınıfının üye işlevi.

OnMeasureItemyalnızca çalışma zamanında denetim sınıfı oluşturulduğunda veya ile oluşturulan çağrılacak LBS_OWNERDRAWVARIABLE veya CBS_OWNERDRAWVARIABLE stili.İletişim kutusu Düzenleyicisi tarafından Denetim oluşturduysanız, OnMeasureItem değil çağrılacak.Bu, çünkü WM_MEASUREITEM oluşturma işleminin başında denetim iletisi gönderdi.Varsa kullanarak alt DDX_Control, SubclassDlgItem, ya da SubclassWindow, alt sınıflara ayırma genellikle sonra oluşturma işlemi gerçekleşir.Bu nedenle, işlemek için bir yolu yoktur WM_MEASUREITEM denetimin iletide OnChildNotify mfc uygulamak için kullandığı düzenektir işlev ON_WM_MEASUREITEM_REFLECT.

[!NOT]

Bu üye işlevi, uygulamanız Windows ileti işleme izin çerçevesi tarafından çağrılır.İleti alındığında çerçevesi tarafından alınan parametreleri, işleve iletilen parametreler yansıtır.Temel sınıf uygulaması, bu işlev çağrısı yaparsa, bu uygulama özgün iletiyi ve sağladığınız parametreleri ile işleve geçirilen parametreleri kullanır.

Gereksinimler

Başlık: afxwin.h

Ayrıca bkz.

Başvuru

CWnd Sınıfı

Hiyerarşi grafik

CMenu::MeasureItem

CListBox::MeasureItem

CComboBox::MeasureItem

CComboBox::MeasureItem