![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Ровняю в TForm.FormCreate командой
Код:
ModifyMenu(MainMenu1.Handle, N42.MenuIndex, MF_BYPOSITION or MF_POPUP or MF_HELP, N42.Handle, pchar(N42.Caption)); Как побороть? |
|
#2
|
||||
|
||||
|
А как вы надпись на пункте меняете, часом не
Код:
N42.Caption:= 'бла-бла'; Код:
MainMenu1.OwnerDraw:= true;
ModifyMenu(MainMenu1.Handle, N1.MenuIndex, MF_BYCOMMAND, 0, PChar('бла-бла'));
MainMenu1.OwnerDraw:= false;З.Ы. А может лучше отказаться от использования MainMenu - сделать его на основе CoolBar'а через ToolBar с кнопками, у тулбара есть свойство "MainMenu". Таким макаром можно собрать типа менюшку убрав её предварительно из свойств формы. А в самый правый край ей влепить еще один тулбар с одной кнопкой — "пунктом меню". Я бы так сделал. Остается только позиционировать крайний тулбар в OnResize при смене ширины формы, и всё. |
|
#3
|
|||
|
|||
|
Спасибо за ответ, попробовал ваш вариант - не работает, если меняю "MF_BYCOMMAND" на "MF_BYPOSITION" то работает, но точно так же как "N42.Caption:=", тоесть - передергивает в лево
Последний раз редактировалось Oreon, 23.06.2013 в 13:43. |
|
#5
|
||||
|
||||
|
В SDK есть флаг MF_RIGHTJUSTIFY или как-то так. Здравствуй, Windows 3.x.
![]() |
|
#6
|
||||
|
||||
|
Да, есть, но пользовать его надо в связке
Код:
... MF_BYPOSITION or MF_RIGHTJUSTIFY, ... |
|
#8
|
||||
|
||||
|
Странно, на W7D7 нормально работает, тогда советую всё же смотреть в сторону эмулятора меню, будет проще.
|
|
#9
|
||||
|
||||
|
VCL внутри себя пересоздает меню при некоторых условиях, -- уже запамятовал, каких... То ли при автоматическом переназначении горячих клавиш, то ли еще когда. Советую покурить справку по этому поводу.
Другой совет -- попробовать поотключать для меню и его пунктов свойства, которые могут вызвать его пересоздание. Какие конкретно свойства -- либо выяснять опытным путем, либо копаться в исходниках VCL. |