Поделиться через


CWnd::OnMeasureItem

Платформа вызывает функцию этот функцию-член платформой для рисования владельцем владелец кнопки, поля со списком списка или пункта меню, когда элемент управления создать.

afx_msg void OnMeasureItem( 
   int nIDCtl, 
   LPMEASUREITEMSTRUCT lpMeasureItemStruct  
);

Параметры

  • nIDCtl
    Идентификатор элемента управления.

  • lpMeasureItemStruct
    Указатель на структуру данных MEASUREITEMSTRUCT, содержащая измерения управления рисования владельцем.

Заметки

Переопределите этот функцию-член и заполните структуру данных MEASUREITEMSTRUCT, на которую указывает lpMeasureItemStruct и возврат; это сообщает Windows измерений элемента управления и позволяет процесса Windows на взаимодействие пользователя с элементом управления.

Если список или поле со списком созданы с учетом LBS_OWNERDRAWVARIABLE или CBS_OWNERDRAWVARIABLE, то платформа вызывает функцию эту функцию для владельца для каждого элемента в элементе управления; в противном случае эта функция называется раз.

Windows OnMeasureItem владелец начнет вызов для полей со списком и списков, созданных с учетом OWNERDRAWFIXED, прежде чем отправлять сообщение WM_INITDIALOG. В результате, когда владелец получает вызов, Windows еще не определяет высоту и ширину шрифта, используемого в элементе управления; вызовы функций и вычислений, требующих этих значений должны выполняться в основном функции приложения или библиотеки.

Если элемент, измерянным CMenu, CListBox или объект CComboBox, то называется виртуальная функция MeasureItem соответствующего класса. Переопределить функцию-член MeasureItem класса соответствующего элемента управления для вычисления и задать размер каждого элемента.

OnMeasureItem будет вызываются, только если класс элемента управления создать во время выполнения или создать с LBS_OWNERDRAWVARIABLE или стилем CBS_OWNERDRAWVARIABLE. Если элемент управления создания редактором диалоговых окон, OnMeasureItem не будет вызываются. Это происходит потому, что сообщение WM_MEASUREITEM отправлено в начале процесса создания элемента управления. Если подкласс с помощью DDX_Control, SubclassDlgItem или SubclassWindow, subclassing обычно происходите после завершения процесса создания. Поэтому невозможно обработать сообщение WM_MEASUREITEM в функции OnChildNotify элемента управления, которая использования MFC механизма для реализации ON_WM_MEASUREITEM_REFLECT.

Примечание

Это функция-член вызывается платформой, чтобы разрешить приложению обработать сообщение Windows.Параметры, передаваемые функции отражают параметры, получаемые платформой, когда сообщение было получено.При вызове реализации базового класса этой функции, то эта реализация будет использовать параметры изначально, переданные с сообщением, а не параметры указываются в функции.

Требования

Header: afxwin.h

См. также

Ссылки

Класс CWnd

Диаграмма иерархии

CMenu::MeasureItem

CListBox::MeasureItem

CComboBox::MeasureItem

CComboBox::MeasureItem