Wiki1CPP: МодификацияГлавногоМеню ...

Home Page | Каталог | Изменения | НовыеКомментарии | Пользователи | Вам запрещён доступРегистрация | Вход:  Пароль:  

Модификация главного меню 1С


Здесь мы рассмотрим модификацию той части главного меню, которая постоянна, независимо от активного окна-фрейма. Если вам требуется модифицировать меню только для окна-фрейма вашей компоненты (меню «Действия» и т.д.), то смотрите статью Создание окон-фреймов в главном окне.

Добавление меню

Для добавления меню мы используем класс CAppFrame, функцию AddMenu:

Получение командных сообщений от меню

После добавления вышеуказанного кода в процедуру инициализации нашей компоненты, мы можем видеть новое, добавленное, меню в главном меню 1С. Однако, все пункты меню недоступны. Рассмотрим, как сделать их доступными, а также, как получать сообщения о выборе пунктов нашего нового меню.


В этом нам поможет класс CModule7. Этот класс позволяет внешней компоненте включиться в процесс обработки оконных сообщений в 1С. Сначала мы должны определить некий класс-наследник класса CModule7:


Далее определим в классе нашего приложения переменную типа CTestModule:


При инициализации нашей компоненты «подключим» CTestModule к 1С:


Все, модуль включен в процесс обработки оконных сообщений 1С. Осталось определить обработчики команд нашего меню. Класс CModule7 является наследником стандартного MFC-класса CCmdTarget. Поэтому у него есть своя карта сообщений. Эта карта редактируется стандартным образом, так же, как и для любого объекта типа CWnd или CView:
Заголовок класса:


Реализация класса:


Естественно, мы также должны добавить в класс функции OnOurMenuCommand (обработка выбора нашего пункта меню) и OnUpdateOurMenuCommand (для переключения доступности/недоступности нашего пункта меню). К сожалению, эти операции приходится делать вручную, т.к. AppWizard почему-то не хочет автоматом подхватывать классы-наследники CModule7.


Страницы, ссылающиеся на данную: CModule7
framedll
ИнтерфейсПользователя
ОглавлениеПоКлассам


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]