Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.64
kveigs
16 / 16 / 2
Регистрация: 20.03.2010
Сообщений: 85
18.02.2012, 16:24     быстрое рисование с помощью GDI+ #1
Доброго времени суток! Хочу вывести прямоугольник в центр экрана используя 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);
    // освобождаем контекст
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2012, 16:24     быстрое рисование с помощью GDI+
Посмотрите здесь:

Visual C++ Создание классов геометрических фигур, рисование на GDI (MFC)
GDI C++
Быстрое программирование C++
C++ Builder GDI+
Рисование STATIC с помощью мышки C++ WinAPI
Visual C++ Быстрое изучение С++
Быстрое изучение С++ C++
Быстрое шифрование C++
Быстрое умножение C++
GDI функции (рисование): критична ли утечка памяти и как её устранить? C++ WinAPI
GDI, Рисование звезды C++ WinAPI
Рисование треугольника Серпинского с помощью GTK

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
18.02.2012, 19:34
  #2

Не по теме:

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

kveigs
16 / 16 / 2
Регистрация: 20.03.2010
Сообщений: 85
18.02.2012, 20:01  [ТС]     быстрое рисование с помощью GDI+ #3
вот тут вот всё неплохо описано http://graphicon.ru/oldgr/courses/cg...ws/#tth_sEc2.5
Yurii_74
paladin
 Аватар для Yurii_74
279 / 179 / 3
Регистрация: 25.02.2009
Сообщений: 592
21.02.2012, 06:36     быстрое рисование с помощью GDI+ #4
Помню, сам сталкивался с подобным. Использовал функцию CreateCompatibleBitmap.
Yandex
Объявления
21.02.2012, 06:36     быстрое рисование с помощью GDI+
Ответ Создать тему
Опции темы

Текущее время: 07:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru