Russian Qt Forum
Ноябрь 03, 2024, 00:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt 4.3.1 Как можно рисовать зная контекст устройства  (Прочитано 3950 раз)
Mike
Гость
« : Август 10, 2007, 11:00 »

Есть такая задача: нужно рисовать, зная контекст устройства. Как это можно сделать?

Задача получилась таким образом: есть ActiveX для работы с картами Ингит. Делаю для него обертку с помощью dumpcpp, получается наследник от QAxWidget. Но любые попытки нарисовать на нем с помощью перекрытия paintEvent игнорируются, так как он туда даже не заходит. В самом ActiveX есть событие SelfDraw, его я отловить могу (с помощью сигналов), а в нем один из параметров - контекст устройства, на котором можно рисовать. Теперь как мне создать что-нить типа QPainter, чтобы я мог нормально на нем рисовать?
Записан
Mike
Гость
« Ответ #1 : Август 13, 2007, 12:14 »

После долгих мучений получил такой вариант решения проблемы (может кому пригодится):
Код:
//hDC - контекст устройства типа HDC
HBITMAP hBmp = (HBITMAP)GetCurrentObject(hDC, OBJ_BITMAP);
QPixmap pixmap(QPixmap::fromWinHBITMAP(hBmp));
DeleteObject(hBmp);

QPainter painter(&pixmap);
// Здесь рисуем с помощью painter

hBmp = pixmap.toWinHBITMAP();
SelectObject(hDC, hBmp);
DeleteObject(hBmp);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 20.