Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/30: Рейтинг темы: голосов - 30, средняя оценка - 4.93
16 / 16 / 0
Регистрация: 20.03.2010
Сообщений: 85

быстрое рисование с помощью GDI+

18.02.2012, 16:24. Показов 6393. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Хочу вывести прямоугольник в центр экрана используя GDI+, если рисовать сразу, то картинка будет тормозить. Поэтому сначала рисую в hMemDC. Однако в этом случае, на экран ничего не выводится.. Ошибку то же не выдаёт.. Что я делаю не так??
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
HDC hdc=GetDC(GetDesktopWindow());
HDC hMemDC;
hMemDC = CreateCompatibleDC(hdc);
if(hMemDC)
{
    Graphics g2(hMemDC);
    RectF bounds(rect.left,rect.top, rect.right-rect.left, rect.bottom-rect.top);
    LinearGradientBrush br(bounds, Color(130, 255, 0, 0), Color(255, 0, 0, 255), 
          LinearGradientModeBackwardDiagonal); 
   g2.FillRectangle(&br,bounds.X,bounds.Y, bounds.Width, bounds.Height);
   // быстро копируем результат отрисовки  
   BitBlt(hdc, bounds.X,bounds.Y, bounds.Width, bounds.Height, hMemDC, 0, 0,  SRCCOPY);
   // освобождаем контекст
   DeleteDC(hMemDC);
}
else
{
   MessageBox(hWndMain, L"Error", L"SafeEye's error", MB_OK);
}
Добавлено через 1 час 2 минуты
Ура!!! Получилось вот так вот, даже на картинке нарисовать чего-то)))
C++
1
2
3
4
5
6
7
8
hOldBitmap = (HBITMAP)SelectObject(hMemDC, (HGDIOBJ) hBitmap);
     Graphics g2(hMemDC);         
         g2.FillRectangle(&br,bounds.X,bounds.Y, bounds.Width, bounds.Height);
        
        // быстро копируем результат отрисовки
    BitBlt(hdc, bounds.X,bounds.Y, bounds.Width, bounds.Height, hMemDC, 0, 0, SRCCOPY);
    SelectObject(hMemDC, (HGDIOBJ) hOldBitmap);
    // освобождаем контекст
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.02.2012, 16:24
Ответы с готовыми решениями:

Создание классов геометрических фигур, рисование на GDI (MFC)
Нужно создать класс Shape, как некий родительский класс геометрических фигур, от которого будут наследоваться последующие конкретные...

GDI, Рисование звезды
Здравствуйте, подскажите пожалуйста, что нужно добавить в код, что бы кисть применялась к нарисованной звезде и сама звезда выводилась бы в...

GDI функции (рисование): критична ли утечка памяти и как её устранить?
Друзья! Вот код. Не пинать (к примеру, все хэндлы можно было объявить ВНЕ цикла, я и сам знаю. Изначально он много сложнее и объявление...

3
18.02.2012, 19:34

Не по теме:

Где брал литературу по GDI+?

0
16 / 16 / 0
Регистрация: 20.03.2010
Сообщений: 85
18.02.2012, 20:01  [ТС]
вот тут вот всё неплохо описано http://graphicon.ru/oldgr/cour... tth_sEc2.5
0
paladin
 Аватар для Yurii_74
286 / 187 / 7
Регистрация: 25.02.2009
Сообщений: 589
21.02.2012, 06:36
Помню, сам сталкивался с подобным. Использовал функцию CreateCompatibleBitmap.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.02.2012, 06:36
Помогаю со студенческими работами здесь

Рисование STATIC с помощью мышки
Сделал все кроме того что помеченного синим цветом. Не могли бы вы подсказать, как мне доделать это задание? И еще хотел спросить как...

Рисование треугольника Серпинского с помощью GTK
Всем доброго времени суток! Сейчас разбераю тему фракталов и нашел код программы для построения треугольника Серпинского: #include...

Рисование с помощью GDI персонажей в Pacman
Есть уроки по рисованию где все доскональна объясняется? В моем случаи нужно нарисовать Героя Pacman анимированного! С 2мя анимациями...

Рисование в GDI
Всем привет! Изучаю ассемблер по книге Владислава Пирогова "Ассемблер для WINDOWS 4-е издание". Там есть пример с рисованием...

Рисование GDI+ линий
Добрый день, уважаемые форумчане! Не могу никак (знаний не хватает) целый день решить элементарную проблему - сделать вкладки с помощью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru