|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
проблема с работой функции SetMenuItemInfo
Доброго времени суток, уважаемые форумчане.
Недавно появилось желание расположить пункт главного меню "О программе" с правой стороны. Рассмотрел пример использования GetMenuItemInfo и SetMenuItemInfo. В итоге расположил следующий код в событиях OnCreate и OnPaint главной формы приложения и OnChange компонента MainMenu: Код:
var // определение глобальных переменных mii: TMenuItemInfo; MainMenu: hMenu; Buffer: array[0..1000] of Char; ========= // непосредственно код MainMenu := Self.Menu.Handle; mii.cbSize := SizeOf(mii) ; mii.fMask := MIIM_TYPE; mii.dwTypeData := Buffer; mii.cch := SizeOf(Buffer); GetMenuItemInfo(MainMenu, N21.Command, false, mii) ; mii.fType := mii.fType or MFT_RIGHTJUSTIFY; SetMenuItemInfo(MainMenu, N21.Command, false, mii) ; Всё работает. Однако заметил, что при деактивации какого-либо пункта меню (установка enabled в false) функция прекращает располагать нужный пункт меню с правой стороны. Встречался ли кто с такой проблемой? Заранее благодарен. Последний раз редактировалось Admin, 25.03.2012 в 17:19. |
#2
|
|||
|
|||
С функцией ModifyMenu тоже самое
|
#3
|
||||
|
||||
изменяете состояние пункта меню (enable/disable) тоже через SetMenuItemInfo?
также посмотрите в сторону DrawMenuBar |
#4
|
|||
|
|||
спасибо большое, но уже решил и именно через DrawMenuBar. Правда, стоит признаться, в некоторые моменты видно, как необходимый пункт меню перемещается в правую сторону (дергается при "перерисовке"). Обидно...
ещё раз спасибо. |