Как динамически изменить высоту нарисованного списка в Windows Mobile? - PullRequest
1 голос
/ 10 февраля 2010

Я пытаюсь создать нарисованный владельцем список на Windows Mobile 6.1. Я создал стиль LBS_OWNERDRAWFIXED при создании элемента управления списком. Я обрабатываю WM_MEASUREITEM и WM_DRAWITEM соответственно.

Я хочу изменить высоту элемента списка при каждом изменении его шрифта (я изменяю его с помощью WM_SETFONT после создания элемента управления). Проблема в том, что сообщение WM_MEASUREITEM отправляется только один раз. Мне нужен способ создать сообщение WM_MEASUREITEM снова, чтобы я мог установить высоту элемента в высоту шрифта. Я видел статью http://www.codeguru.com/Cpp/controls/listview/advanced/article.php/c1013/,, но она использует MFC, в то время как я разрабатываю этот элемент управления напрямую, используя WINAPI. В некоторых статьях упоминается, что изменение размера элемента управления снова генерирует сообщение WM_MEASUREITEM. Тем не менее, это не генерируется в моем случае.

Пожалуйста, дайте мне знать, есть ли способ добиться этого в Windows Mobile.

1 Ответ

0 голосов
/ 10 февраля 2010

В этом коде нет ничего особенного MFC. OnSetFont - это просто обработка WM_SETFONT. MeasureItem обрабатывает в MyListCtrl WM_MEASUREITEM, отправленный его родителю.

Что касается генерации нового WM_MEASUREITEM при изменении размера окна, вы не можете просто сделать SendMessage при обработке WM_SIZE / WM_SIZING?

...