Я загрузил растровое изображение в элемент управления c в MF C с помощью StrechBlt (). Но когда я переместил диалоговое окно за пределы экрана windows, часть изображения стирается. Кто-нибудь знает, почему это происходит?
Ниже приведен код для загрузки растрового изображения в stati c control:
bool LoadImage(CString path)
{
HBITMAP hBitmap = (HBITMAP)LoadImage(NULL, path, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
CBitmap bitmap;
CDC cdc;
CClientDC DC(GetDlgItem(IDC_STATIC));
CStatic* pStaticText = (CStatic*)GetDlgItem(IDC_STATIC);
bitmap.Attach((HBITMAP)hBitmap);
cdc.CreateCompatibleDC(&DC))
CBitmap* pBM = cdc.SelectObject(&bitmap);
BITMAP bitmapObj;
bitmap.GetBitmap(&bitmapObj);
CRect rect;
CWnd *pWnd = GetDlgItem(IDC_STATIC_IMAGE_CAPTURE_AREA);
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
DC.StretchBlt(0, 0, rect.Width(), rect.Height(), &cdc, 0, 0, bitmapObj.bmWidth, bitmapObj.bmHeight, SRCCOPY);
cdc.SelectObject(pBM);
pStaticText->SetBitmap((HBITMAP)bmp);
cdc.DeleteDC();
bitmap.DeleteObject();
return true;
}