Итак, я пытаюсь перемасштабировать растровое изображение без печати оригинала и перепечатки изображения с измененной картинкой. Я пытаюсь использовать StretchBlt(), на основе функции Microsoft MSDN перемасштабирования изображения:C++ WIN32: масштабирование растровых изображений/предоставление растровых изображений HDC's
https://msdn.microsoft.com/en-us/library/windows/desktop/dd162950(v=vs.85).aspx
но требует вторичного HDC привязанного к источнику, который растягивания не может быть сделана без печати HBITMAP первый. Есть ли способ конвертировать HBITMAP в HDC? Я смог получить HANDLE из HBITMAP, что может обеспечить более прямой маршрут. Другая вещь, которую я мог бы сделать, - создать измененную растровую карту в выделенной памяти (не сохраненной) из стандартного растрового изображения и напечатать это.
Стандартный способ я печать растровых изображений:
HBITMAP hBitmap;
static HANDLE hDIB = NULL;
CHAR szFileName[MAX_PATH] = "fileName.bmp";
hDIB = OpenDIB((LPSTR)szFileName);
hBitmap = BitmapFromDIB(hDIB, NULL);
DrawBitmap(hdc, x, y, hBitmap, SRCCOPY);
Другого варианта я мог бы попробовать это посмотреть в другое средство отображения ВМРА. Я довольно новичок в win32, поэтому я не знаю никаких других способов решения этой задачи. Любое понимание того, как я могу перемасштабировать BITMAP, не печатая его в первую очередь.
Осмотрите ближе 'функции DrawBitmap' вас» я использовал. В нем уже есть все, что вам нужно. Все, что вам нужно сделать, это заменить вызов 'BitBlt' вызовом' StretchBlt'. – glank
http://pastebin.com/rNHrDmzg – Brandon