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

Исчезает всё нарисованное на gdi+ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Заполнение списка с возможностью перестановки его строк http://www.cyberforum.ru/cpp-beginners/thread454749.html
Как написать программу которая string загоняет в список, чтоб потом можно было переставлять строки и.т.п?
C++ Класс с динамическим массивом доброго времени суток! помогите мне немножко: создать клас vector для сохранения массиву, розмеры от 10 до 10к, память виделите динамчно. забаспечте индексацыю елементов. http://www.cyberforum.ru/cpp-beginners/thread454744.html
Найти объединение и симметрическая разность C++
Пожалуйста, помогите написать программу, находящую объединение и симметрическую разность элементов двух множеств
Создать структуру Student C++
Не могу никак понять тему структуры, а тут сразу ещё и список, помогите написать код ка С++ : Создать структуру с именем Student с полями: фамилия, имя, номер группы, успеваемость (массив из пяти элементов). Сформировать двусвязный список. Реализовать просмотр списка в прямом и обратном порядке, а также Удаление всех студентов заданной группы. Спасибо.
C++ Создать простое консольное приложение http://www.cyberforum.ru/cpp-beginners/thread454718.html
Задание 1 Создать простое консольное приложение 2 В созданном консольном приложении написать и отладить программу в соответствии с вариантом. Вариант выбирается по списку в учебном журнале Задана матрица чисел: а Вычислить сумму элементов, образующих символ Есть пример #include "stdafx.h" #include <stdlib.h>
C++ Метод исчерпывания Необходимо реализовать на С++ численный метод исчерпывания. Материала чет подходящего найти не могу. Подкиньте кто что сможет. P.S. Код писать не прошу, помогите с алгоритмом. подробнее

Показать сообщение отдельно
kveigs
16 / 16 / 2
Регистрация: 20.03.2010
Сообщений: 85
28.02.2012, 22:29  [ТС]     Исчезает всё нарисованное на gdi+
Спасибо всем. Уже всё работает норм - отрисовываю и кнопочки свои теперь с помощью BitBlt
вот код, может быть кому-нибудь пригодится
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//рисует изображение с полупрозрачностью
void DrawWithAlpha(Bitmap* bitmap, Graphics* g, int x, int y, int width, int height, float alpha)
{
    // Initialize the color matrix.
    // Notice the value 0.8 in row 4, column 4.
    ColorMatrix colorMatrix = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
                           0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
                           0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
                           0.0f, 0.0f, 0.0f, alpha, 0.0f,
                           0.0f, 0.0f, 0.0f, 0.0f, 1.0f};
    // Create an ImageAttributes object and set its color matrix.
    ImageAttributes imageAtt;
    imageAtt.SetColorMatrix(&colorMatrix, ColorMatrixFlagsDefault,
       ColorAdjustTypeBitmap);
    // Now draw the semitransparent bitmap image.
    g->DrawImage(
       bitmap, 
       Rect(0, 0, width, height),  // Destination rectangle
       x,                             // Source rectangle X 
       y,                             // Source rectangle Y
       width,                        // Source rectangle width
       height,                       // Source rectangle height
       UnitPixel, 
       &imageAtt);
}
 
bool DrawImageFast(HDC hdc, HBITMAP hBmp, Rect rect, float alpha)
{
    HDC     hMemDC1;
    HBITMAP hOldBitmap;
    
    hMemDC1 = CreateCompatibleDC(hdc);
    Bitmap bit(hBmp,0);
 
    if (hMemDC1){
       // рисуем все что требуется
       hOldBitmap = (HBITMAP)SelectObject(hMemDC1, hBmp);
       Graphics g2(hMemDC1);
       DrawWithAlpha(&bit, &g2, rect.X, rect.Y, rect.Width, rect.Height, alpha);
       // копируем биты
       BitBlt(hdc, rect.X, rect.Y, rect.Width, rect.Height, hMemDC1, 0, 0, SRCCOPY);
       // возвращаем старый bitmap
       SelectObject(hMemDC1, hOldBitmap);
       // освобождаем контекст
       DeleteDC(hMemDC1);
       DeleteObject(hOldBitmap);
    }
    else
    {
       return FALSE;
    }
    return TRUE;
}
p.s. Красота требует жертв!)
 
Текущее время: 04:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru