На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

mapPaintExampleObjectUn и параметр HDC

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
mapPaintExampleObjectUn и параметр HDC
 
Добрый день!

Функция mapPaintExampleObjectUn определена и для линукс. Вижу ее имя в so. Ниже ее описание:
Код
// Отобразить образец вида объекта c учетом типа визуализации по      // 23/02/14

 // номеру записи в классификаторе объектов (incode)

 // Используется в диалогах выбора вида объекта

 // hmap - идентификатор открытых данных

 // hdc  - идентификатор контекста устройства вывода,

 // rect - координаты фрагмента карты (Draw)

 // в изображении (Picture),

 // visualtype - тип визуализации (VT_SCREEN, VT_PRINT)

 // text - текст для отображения знака типа подпись

 // factor - процент изменения размера знака для отображения больших знаков

 //          в маленьких окошках (50 - сжать в 2 раза, 150 - увеличить в 1,5 раза)

 // При ошибке возвращает ноль

 

_MAPIMP long int _MAPAPI mapPaintExampleObjectUn(HMAP hMap, HDC hdc,RECT* rect,

                                                 long int incode, long int visualtype,

                                                 const WCHAR * text, long int factor);

Вопрос: что подразумевается под HDC для линукс?
 
Здравствуйте!

Параметр HDC семейства функций mapPaintExampleObject используется для отрисовки с помощью средств X11. В этом случае заполняется и передается структура XCONTEXT (xcontext.h):
Код
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/keysym.h>

typedef struct XCONTEXT  // Аналог Windows HDC для XWindow
{
  Display * xcDisplay;   // Связь с X-сервером
  Window    xcWindow;    // Идентификатор окна
  GC        xcContext;   // Графический контекст окна
  DRAWPOINT xcPoint;     // Расположение отображаемой области в окне
                         // (левый верхний угол в пикселах)
}
  XCONTEXT;

#define XHDC       XCONTEXT*

Пример заполнения:
Код
XCONTEXT xHDC;
xHDC.xcDisplay = x11AppDisplay();
xHDC.xcWindow  = winId();
xHDC.xcContext = XCreateGC(xHDC.xcDisplay, xHDC.xcWindow, 0, NULL);

FxDC.xcPoint.X = 0;
FxDC.xcPoint.Y = 0;

HDC hDC = HDC(&xHDC);

Предпочтительнее использовать функции отрисовки в память (например, mapPaintExampleObjectByFuncToXImage, mapapi.h):
Код
// Вывести изображение карты в XImage (массив)
// Данная функция реализована для XWindow !
// Описание структуры XIMAGEDESC в maptype.h
// rect - фрагмент для вывода отображения
// func - функция отображения объекта
// parm - параметры изображения
// colors - количество цветов
// palette - палитра
// text - необходимый текст
// local - локализация
// При ошибке в параметрах возвращает ноль

_MAPIMP long int _MAPAPI mapPaintExampleObjectByFuncToXImage(HMAP hMap, XIMAGEDESC *imagedesc,
                                                             RECT *rect, long int func, const char *parm,
                                                             long int colors, COLORREF *palette,
                                                             const char *text, long int local);
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2021

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности