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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Расширение NFI http://www.cyberforum.ru/cpp/thread448353.html
Есть прошивки для спутниковых ресиверов DreamBox и у них расширение *.nfi , вопроc на каком языке написано ?
C++ Литература по C++ Подскажите пожалуйста литературу по C++ для начинающего. http://www.cyberforum.ru/cpp/thread448300.html
C++ WinApi C++. Конкатенация рядов символов lstrcat
Доброго времени суток. Возник вопрос в роботе с WinApi в С++. В програме есть момент где нужно получить полный путь к файлу, которий находится, например C:\Temp. Сделал это так: с помощью функции lstrcat. К сожелению ничего не роботает =( . Помогите понять в чем ошибка ? Код создавал в MS VS 2008. #include<iostream> #include<windows.h> using namespace std; int main() { HANDLE...
Абсолютная и Относительная адресация. C++
здравствуйте у меня такой вопрос. Вот я слышал что есть Абсолютный и Относительный адрес. из определения я понял что абсолютный адрес,это динамический адрес в программе и он после каждого запуска приложения может менятся, А относительный адрес всегда один и тот же , то есть вот запустил я программу и по аддресу 0x0000F4A1 всегда хранится одно и тоже значение. и адрес этого значения не...
C++ Запуск внешнего приложения http://www.cyberforum.ru/cpp/thread447921.html
Мне нужно написать программу, которая запускает exe-файл расчетной проги, а потом отслеживает момент, когда эта прога заканчивает работу. Все утро искал информацию по WinExec, CreateProcess и пр., но так и не разобрался, как отследить момент остановки расчета.
C++ Выбрать язык Сейчас в С, С++ я полный нуб, но относительно неплохо знаю delphiXE2. Интересно узнать- каковы основные отличия между C, C++ и C#. И какой из них более похож на delphi по задачам, которые могут быть решены в данном ЯП? подробнее

Показать сообщение отдельно
kveigs
16 / 16 / 2
Регистрация: 20.03.2010
Сообщений: 85

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

18.02.2012, 16:24. Просмотров 3505. Ответов 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);
    // освобождаем контекст
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru