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 еще не определено высоту и ширину шрифта, используемого в элементе управления; вызовы функций и вычисления, которые требуют эти ценности должны происходить в функции main приложения или библиотеки.
Если элемент измерения является CMenu, CListBox или объект CComboBox , называется виртуальной функции MeasureItem соответствующего класса. Переопределить функцию-член MeasureItem класса соответствующего элемента управления для расчета и задать размер каждого элемента.
OnMeasureItem будет вызван только если класс элемента управления создается во время выполнения, или он создается с LBS_OWNERDRAWVARIABLE или CBS_OWNERDRAWVARIABLE стилем. Если создается элемент управления в редакторе диалоговых окон, OnMeasureItem вызвываться не будет. Это потому что WM_MEASUREITEM сообщение отправляется в начале процесса создания элемента управления. Если вы подкласс с помощью DDX_Control, SubclassDlgItemили SubclassWindow, подклассы обычно возникает после процесса создания. Таким образом нет способа обработки сообщения WM_MEASUREITEM в функции элемента управления OnChildNotify , который является механизмом, который использует MFC для реализации ON_WM_MEASUREITEM_REFLECT.
Примечание Эта функция-член вызывается framework позволяет приложению обрабатывать сообщение Windows. Параметры, переданные функции отражают параметры, полученные в рамках, когда сообщение было получено. При вызове базового класса реализация этой функции, что реализация будет использовать параметры, первоначально с сообщением и не предоставляемые параметрами функции передается.
Обзор CWnd |nbsp; Члены класса | Иерархическая схема
См. такжеnbsp;CMenu::MeasureItem, CListBox::MeasureItem, CComboBox::MeasureItem, WM_MEASUREITEM