반응형
MFC 방법
//
HBITMAP imagehandle = LoadBitmap(DLLHandle, MAKEINTRESOURCE(103));
CImage img1;
int dimx = 400, dimy = 400;
img1.Attach(imagehandle);
CDC* screenDC = GetDC();
CDC* pMDC = new CDC;
pMDC->CreateCompatibleDC(screenDC);
CBitmap* pb = new CBitmap;
pb->CreateCompatibleBitmap(screenDC, dimx, dimy);
CBitmap* pob = pMDC->SelectObject(pb);
img1.StretchBlt(pMDC->m_hDC, 0, 0, 400, 400,
0, 0, img1.GetWidth(), img1.GetHeight(), SRCCOPY);
pMDC->SelectObject(pob);
CImage new_image;
new_image.Attach((HBITMAP)(*pb));
((CStatic*)GetDlgItem(IDC_SAMPLE_IMAGE0))->SetBitmap(new_image.Detach());
ReleaseDC(screenDC);
WIN32 방법
BITMAP bm;
::GetObject(imagehandle, sizeof(bm), &bm);
HDC hDC = ::GetDC(NULL);
HDC hSrcDC = ::CreateCompatibleDC(hDC);
HDC hDestDC = ::CreateCompatibleDC(hDC);
HBITMAP hOutBitmap = ::CreateCompatibleBitmap(hDC, 500, 500);
HBITMAP hOldBitmap = (HBITMAP)::SelectObject(hDestDC, hOutBitmap);
HBITMAP hOldSrcBitmap = (HBITMAP)::SelectObject(hSrcDC, imagehandle);
::StretchBlt(hDestDC, 0, 0, 500, 500, hSrcDC, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);
::SelectObject(hDestDC, hOldBitmap);
::SelectObject(hSrcDC, hOldSrcBitmap);
//((CStatic*)GetDlgItem(IDC_SAMPLE_IMAGE0))->SetBitmap(hOutBitmap);
::SendMessage(hWnd0, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hOutBitmap);
::ReleaseDC(NULL, hDC);
이제 비인기 코드 예제들을 구하기 어려운 시절이 되버렸다. ..
반응형
'Development > Visual C++' 카테고리의 다른 글
[MFC] 다국어 RC 제작 방법 (0) | 2023.01.20 |
---|---|
std variant can not found 오류 시 (0) | 2022.12.23 |
Resource Only DLL 제작 / 사용 방법 (0) | 2022.08.09 |
Console Redirection, CreateProcess 에서 64비트 일 경우 처리 (0) | 2022.07.12 |
LINK : fatal error LNK1104: 'LIBC.lib' 파일을 열 수 없습니다. (0) | 2022.03.15 |
댓글