В любой момент можно изменить цветовое оформление любых карт, растров, матриц и других данных.
Например:
Код |
---|
// Запросить яркость карты (от -16 до +16)
// hMap - идентификатор открытой основной карты
// hSite - идентификатор открытой пользовательской карты
// (для фоновой карты hSite = hMap)
_MAPIMP long int _MAPAPI mapGetSiteBright(HMAP hMap, HSITE hSite);
// Установить яркость карты (от -16 до +16)
// hMap - идентификатор открытой основной карты
// hSite - идентификатор открытой пользовательской карты
// (для фоновой карты hSite = hMap)
_MAPIMP long int _MAPAPI mapSetSiteBright(HMAP hMap, HSITE hSite, long int bright);
// Запросить контрастность (от -16 до +16)
// hMap - идентификатор открытой основной карты
// hSite - идентификатор открытой пользовательской карты
// (для фоновой карты hSite = hMap)
_MAPIMP long int _MAPAPI mapGetSiteContrast(HMAP hMap, HSITE hSite);
// Установить контрастность (от -16 до +16)
// hMap - идентификатор открытой основной карты
// hSite - идентификатор открытой пользовательской карты
// (для фоновой карты hSite = hMap)
_MAPIMP long int _MAPAPI mapSetSiteContrast(HMAP hMap, HSITE hSite, long int contrast);
// Запросить параболическую яркость
// hMap - идентификатор открытой основной карты
// hSite - идентификатор открытой пользовательской карты
// При ошибке возвращает ноль
_MAPIMP long int _MAPAPI mapGetSiteGamma(HMAP hMap, HSITE hSite);
// Установить параболическую яркость
// hMap - идентификатор открытой основной карты
// hSite - идентификатор открытой пользовательской карты
// gamma - параболическая яркость
// При ошибке возвращает ноль
_MAPIMP long int _MAPAPI mapSetSiteGamma(HMAP hMap, HSITE hSite, long int gamma);
// Запросить число цветов в текущей палитре карты
// Обычно 16 или 32
// hMap - идентификатор открытой основной карты
// hSite - идентификатор открытой пользовательской карты
// При ошибке возвращает ноль
_MAPIMP long int _MAPAPI mapGetSiteColorsCount(HMAP hMap, HSITE hSite);
// Запросить текущую палитру карты (с учетом яркости/контрастности)
// hMap - идентификатор открытой основной карты
// hSite - идентификатор открытой пользовательской карты
// colors - указатель на структуру COLORREF первого цвета в палитре
// count - количество цветов (не более 256)
// При ошибке возвращает ноль
_MAPIMP long int _MAPAPI mapGetSitePalette(HMAP hMap, HSITE hSite, COLORREF *colors, long int count);
// Запросить текущую палитру карты (без учета яркости/контрастности)
// hMap - идентификатор открытой основной карты
// hSite - идентификатор открытой пользовательской карты
// colors - указатель на структуру COLORREF первого цвета в палитре
// count - количество цветов (не более 256)
// При ошибке возвращает ноль
_MAPIMP long int _MAPAPI mapGetSiteColors(HMAP hMap, HSITE hSite, COLORREF *colors, long int count);
// Установить текущую палитру карты
// Если colors равно 0, устанавливается палитра из классификатора
// (палитра классификатора не меняется, изменения будут временными)
// hMap - идентификатор открытой основной карты
// hSite - идентификатор открытой пользовательской карты
// colors - указатель на структуру COLORREF первого цвета в палитре
// count - количество цветов (не более 256)
// number - номер эталонной палитры в классификаторе
// При ошибке возвращает ноль
_MAPIMP long int _MAPAPI mapSetSiteColors(HMAP hMap, HSITE hSite, COLORREF* colors, long int count);
_MAPIMP long int _MAPAPI mapSetSiteColorsEx(HMAP hMap, HSITE hSite, COLORREF* colors, long int count, long int number);
// Установить текущую палитру в карте из классификатора
// hMap - идентификатор открытой основной карты
// hSite - идентификатор открытой пользовательской карты
// number - номер палитры в класификаторе
// При ошибке возвращает ноль
_MAPIMP long int _MAPAPI mapSetSitePaletteByNumber(HMAP hMap, HSITE hSite, long int number); |
Цвет выделения объектов может быть изменен программно.
Можно копировать выделенные объекты на временную карту в памяти и выделять ее своими настройками яркости, контрастности и т.д.
Код |
---|
// Создать временную пользовательскую карту по открытой карте
// hmap - идентификатор открытых данных
// rscname - полное имя файла ресурсов, если равно 0 - выбирается из открытой карты
// inmemory - признак создания карты в оперативной памяти или 0
// При закрытии пользовательской карты все файлы данных автоматически удаляются
// Если параметр inmemory не равен 0, то все данные хранятся только в оперативной памяти
// и освобождаются при закрытии карты
// Возвращает идентификатор открытой пользовательской карты
// При ошибке возвращает ноль
_MAPIMP HSITE _MAPAPI mapCreateAndAppendTempSitePro(HMAP hMap, const WCHAR *rscname, long int inmemory);
// Перенести объект на другую карту (пересчитать координаты и
// заменить ссылку в объекте на карту)
// При переносе объекта выполняется перекодировка объекта
// для нового классификатора, если код не найден -
// он устанавливается в ноль, прежнее значение
// сохраняется в семантике (код 32800).
// (для замены вызывается mapRegisterObject())
// Метрика преобразуется в соответствии с типом карты
// hSite - идентификатор открытой пользовательской карты
// hObj - идентификатор объекта пользовательской карты
// hMap - идентификатор открытой основной карты
// Объект на исходной карте при этом не удаляется,
// для записи объекта в новой карте необходимо вызвать mapCommitObject
// При ошибке возвращает ноль
_MAPIMP long int _MAPAPI mapSetObjectMap(HOBJ info, HSITE hSite);
|
При отмене выделения достаточно закрыть временную карту.