Форум: "KOL";
Текущий архив: 2017.12.31;
Скачать: [xml.tar.bz2];
ВнизownerItem в главной строке меню работает, а в подменю нет Найти похожие ветки
← →
L`Autour (2010-02-14 16:24) [0]В обработчиках OnDrawItem и OnMeasureItem по значению индексов видно, что подменю совсем не приходят в обработку ownerItem.
← →
Дмитрий К © (2010-02-14 17:29) [1]А вы им эту обработку назначаете?
← →
L'Autour (2010-02-14 18:08) [2]ownerItem у главного меню и всех его пунктов меню включен. Обработчики OnDrawItem и OnMeasureItem для главного меню указаны, но кроме пунктов главной строки меню в них ничего не приходит.
← →
Vladimir Kladov © (2010-02-16 18:55) [3]ownerDrawItem ?
Заинтриговался. Меня тоже давно удивляло, почему же не удается в новых версиях откомпилировать DemoMenuMeasureItem, чтобы меню вело себя как 8 лет назад в скомпилированном в версии 154 проекте.
Выяснилось вот что: В те времена MCK генерировал присваиваниеMainMenu1.Items[ miKind ].OwnerDraw := TRUE;
в Unit_1.inc (немного не так:Result.MainMenu1.Items[ 1 ].OwnerDraw := TRUE;
, но суть та). Теперь этот код для подменю вообще не генерируется, а установка OwnerDraw для всего меню генерирует эти присваивания для пунктов меню верхнего уровня, что совсем не правильно.
В общем, если присваивание выше добавить в OnCreate, и не назначать OwnerDraw на все меню, то все становится совсем как в скомпилированном демо.
Насчет сообщений WM_MeasureItem: они приходят для субменю при первом показе родительского пункта, когда действительно надо измерить дочерние пункты, так в Windows сделано изначально.
← →
L`Autour (2010-02-17 17:09) [4]Спасибо. Теперь подменю работает.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2017.12.31;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.001 c