Глава 11:Интегрированная Картография
MapBasic Руководство пользователя
257
7. Если Вы хотите, чтобы MapInfo сообщало Вашей клиентской
программе, когда пользователь применяет инструментальную
кнопку, создайте такую кнопку оператором Alter ButtonPad ...
Add. Определите кнопку в соответствии с именем метода (см.
шаг 4).
Заметьте, что инструментальные панели MapInfo скрыты,
подобно остальной части интерфейса пользователя MapInfo.
Пользователь не будет видеть новую кнопку. Вы можете
добавить иконку, кнопку или другой видимый элемент
управления к интерфейсу пользователя Вашей клиентской
программы. Когда пользователь укажет на него мышкой,
пошлите MapInfo оператор Run Menu, чтобы активизировать
этот инструмент.
8. Если Вы хотите, чтобы MapInfo сообщала Вашей клиентской
программе, когда пользователь выбирает созданную Вами
команду меню, определите такую кнопку оператором Alter
Menu ... Add с указанием имени метода (см. шаг 4).
9. Внутри метода обработайте аргументы, посланные MapInfo.
Если Вы создали метод SetStatusText, MapInfo передает ему
строку, содержащую текст строки состояния. Если Вы хотите
эмулировать строку состояния MapInfo, напишите код, чтобы
поместить этот текст гденибудь в Вашем интерфейсе
пользователя.
Если Вы создали метод WindowContentsChanged, MapInfo посылает
четырехбайтовое целое число (ID окна MapInfo), чтобы указать, какое из окон
Карты изменилось. Напишите код, делающий необходимую обработку.
Например, если Вы следите за размером окна Карты, то Вы можете вызвать
функцию MapInfo MapperInfo( ).
Если Вы применяете пользовательские кнопки или команды меню, MapInfo
посылает строку Вашему приложению, в которой данные разделены запятой.
Внутри Вашего метода проанализируйте эту строку. Точный формат строки
изменяется в зависимости от того, использовал ли пользователь команду
меню, рисующий инструмент и т.д. В следующем разделе описан формат
строки.
Обработка переданных данных
Ваше приложение может создавать пользовательские команды меню
MapInfo и кнопки MapInfo. Когда пользователь использует команды
или кнопки, MapInfo посылает Вашему OLEметоду строку,
содержащую восемь элементов, разделенных запятыми. Например,
строка, посланная MapInfo, может выглядеть так: