Как, использую GDI, повернуть изображение в окне?

Компьютеры программирование С++ GDI

memory_dc -- это совместимый контекст дисплея, получали его так:

HDC window_dc = GetDC(hwnd);
HDC mem_dc = CreateCompatibleDC(window_dc);
HBITMAP mem_bitmap = CreateCompatibleBitmap(window_dc, 500, 500);
SelectObject(mem_dc, mem_bitmap);
SelectObject(mem_dc, GetStockObject(WHITE_BRUSH));
PatBlt(mem_dc, 0, 0, 500, 500, PATCOPY);

Сам код поворота изображения где-то такой:
Graphics g(memory_dc);
Bitmap* b = new Bitmap(500,500, &g);
b->RotateFlip(Rotate90FlipNone);
g.DrawImage(b,0,0);
InvalidateRect(hWnd, NULL, TRUE);

пробовал через TranslateTransform, RotateTransform тоже не получается... Принимаются любые варианты с использованием GDI

Примечание:
А, о самой проге. Я накалякал кой-че с помощью тогоже GDI в окне, используя совместимый контекст memory_dc, указанный выше. Это все надо повернуть на 90 градусов.

Примечание:
Вот рабочий код, может кому-то пригодится:

Graphics g(memory_dc);
HDC mem_dc = CreateCompatibleDC(memory_dc);
HBITMAP mem_bitmap = CreateCompatibleBitmap(memory_dc, 500, 500);
HGDIOBJ prev = SelectObject(mem_dc, mem_bitmap);
BitBlt(mem_dc, 0, 0, 500, 500, memory_dc, 0,0, SRCCOPY);
Bitmap *b = new Bitmap(500,500);
b=Bitmap::FromHBITMAP(mem_bitmap,(HPALETTE)0);
b->RotateFlip(Rotate90FlipNone);
SelectObject(mem_dc, GetStockObject(WHITE_BRUSH));
DeleteObject(mem_bitmap);
ReleaseDC(hWnd,memory_dc);
g.DrawImage(b,0,0);
InvalidateRect(hWnd, NULL, TRUE);
Ответы:


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.