![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OnDrawItem для TKOLMainMenu - работает или нет?
savva © (2003-07-17 10:39:00)собственно subj. У меня в процедуру даже не попадает отладчик...
Кладов (2003-07-18 16:42:00) [1]OnMeasureItem вызывается, когда это windows считает нужным. Скорее всего при создании окна, один раз. А в этот момент еще некому принимать сообщения. Но в демке работает.
savva (2003-07-18 16:27:00) [2]обидно:) тока начал менюшку раскрашивать:)
Gandalf (2003-07-18 15:51:00) [3]
> возможности - не вызывается обработчик OnMeasureItem...
Вроде было сообщение что та и есть - не устраненый баг. Если память не врет.
savva (2003-07-18 15:24:00) [4]довольно странные вещи творятся если OwnerDraw выставить для верхнего пункта меню (то что видно в самом верху:))) то перерисовка идет, а изменить размер менюшки нет возможности - не вызывается обработчик OnMeasureItem...
Владимир, это нормально? :)
savva (2003-07-18 11:00:00) [5]> Dimaxx © (17.07.03 23:35)
> Кстати, а как в этом режиме узнать и задать ширину выпадающей
> панели меню? А то она рисуется в 1-2 пикселя шириной.
в обработчике OnMeasureItem при помощи макроса MakeLong, где первый параметр - желаемая высота, второй - желаемая ширина, как пример для 1 элеемента меню
function TForm1.MainMenuMeasureItem(Sender: PObj; Idx: Integer): Integer;
begin
result:=MakeLong(20,100);
end;
Dimaxx (2003-07-17 23:35:00) [6]Кстати, а как в этом режиме узнать и задать ширину выпадающей панели меню? А то она рисуется в 1-2 пикселя шириной.
savva (2003-07-17 16:13:00) [7]ясно..
Кладов (2003-07-17 16:02:00) [8]отдельные пункты меню могут быть непрорисовываемыми, чтобы отрисовка шла по умолчанию. Вообще, на уровне KOL каждому пункту меню можно назначать свое событие рисования. В MCK руки не дошли.
savva (2003-07-17 15:52:00) [9]да уже разобрался:)) просто оказывается для каждого элемента нужно указывать OwnerDraw - хотя процедура перерисовки назначется всему меню:)) это не есть good.
Может что нибудь поменять: или для каждого элемента меню свою процедуру прорисовки или OwnerDraw для все меню?
это вопрос удобства когда первый раз с этим сталкиваешься..
Кладов (2003-07-17 15:45:00) [10]В демке же работает, посмотрите, как там сделано, и что у вас не так.