Я пытаюсь написать класс для переноса функции растрового изображения в моей программе.
Одной из полезных функций будет копирование растрового изображения из другого дескриптора растрового изображения.Я немного застрял:
void operator=( MyBitmapType & bmp )
{
HDC dcMem;
HDC dcSource;
if( m_hBitmap != bmp.Handle() )
{
if( m_hBitmap )
this->DisposeOf();
// copy the bitmap header from the source bitmap
GetObject( bmp.Handle(), sizeof(BITMAP), (LPVOID)&m_bmpHeader );
// Create a compatible bitmap
dcMem = CreateCompatibleDC( NULL );
m_hBitmap = CreateCompatibleBitmap( dcMem, m_bmpHeader.bmWidth, m_bmpHeader.bmHeight );
// copy bitmap data
BitBlt( dcMem, 0, 0, bmp.Header().bmWidth, bmp.Header().bmHeight, dcSource, 0, 0, SRCCOPY );
}
}
В этом коде отсутствует одна вещь: как я могу получить HDC для исходного растрового изображения, если все, что у меня есть в исходном растровом изображении, это дескриптор (например, HBITMAP?)
Вы можете видеть в коде выше, я использовал "dcSource" в вызове BitBlt ().Но я не знаю, как получить этот dcSource из дескриптора исходного растрового изображения (bmp.Handle () возвращает дескриптор исходного растрового изображения)