![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как установить ширину PopupMenu при OwnerDraw = True
L`Autour © (2008-08-04 07:38:00)Если вручную прорисовываю отдельные элементы меню, то ширина всего меню, определяется остальными элементами меню, иначе в качестве меню получаю узкую полоску.
И еще, если я делаю ручную прорисовку некоторых элементов меню своим шрифтом, то у остальных элементов при их первой прорисовке он сохраняется. Восстанавление шрифта на дефолтный происходит, только если над пунктом меню провести мышкой.
L`Autour (2008-08-11 06:52:00) [1]С памятью нормально - просто я забыл сказать, что шрифт свой шрифт создаю и уничтожаю при создании и удалении формы. А здесь его только к контексту цепляю.
MTsv DN (2008-08-09 12:29:00) [2]> DeleteObject(Font); - оказался лишним
Не думаю. Память надо беречь 8)
L`Aurtour (2008-08-09 07:58:00) [3]DeleteObject(Font); - оказался лишним
L`Autour (2008-08-08 13:45:00) [4]сенк
mdw (2008-08-08 10:23:00) [5]
> по второму - я пробовал просто удалять свой шрифт из DC-
> контектста меню (после моей обработки вывода), но это не
> помагало.
А старый восстанавливали? Должно быть примерно так:
var Font, OldFont: HFONT;
....
OldFont:= SelectObject(DC, Font);
.........
SelectObject(DC, OldFont);
DeleteObject(Font);
L`Autour (2008-08-08 08:45:00) [6]первое попробую
по второму - я пробовал просто удалять свой шрифт из DC-контектста меню (после моей обработки вывода), но это не помагало.
mdw (2008-08-07 10:15:00) [7]По поводу второго, нужно смотреть как рисуете. Возможно не восстанавливаете шрифт после отрисовки.
mdw (2008-08-07 10:08:00) [8]Если правильно понял вопрос, то Вам нужно обрабатывать OnMeasureItem, а там Result:= MAKELONG(H, W).
L`Autour (2008-08-07 07:20:00) [9]Все в отпусках?