-
Если вручную прорисовываю отдельные элементы меню, то ширина всего меню, определяется остальными элементами меню, иначе в качестве меню получаю узкую полоску.
И еще, если я делаю ручную прорисовку некоторых элементов меню своим шрифтом, то у остальных элементов при их первой прорисовке он сохраняется. Восстанавление шрифта на дефолтный происходит, только если над пунктом меню провести мышкой.
-
Все в отпусках?
-
Если правильно понял вопрос, то Вам нужно обрабатывать OnMeasureItem, а там Result:= MAKELONG(H, W).
-
По поводу второго, нужно смотреть как рисуете. Возможно не восстанавливаете шрифт после отрисовки.
-
первое попробую
по второму - я пробовал просто удалять свой шрифт из DC-контектста меню (после моей обработки вывода), но это не помагало.
-
> по второму - я пробовал просто удалять свой шрифт из DC- > контектста меню (после моей обработки вывода), но это не > помагало.
А старый восстанавливали? Должно быть примерно так:
var Font, OldFont: HFONT; .... OldFont:= SelectObject(DC, Font); ......... SelectObject(DC, OldFont); DeleteObject(Font);
-
сенк
-
DeleteObject(Font); - оказался лишним
-
> DeleteObject(Font); - оказался лишним Не думаю. Память надо беречь 8)
-
С памятью нормально - просто я забыл сказать, что шрифт свой шрифт создаю и уничтожаю при создании и удалении формы. А здесь его только к контексту цепляю.
|