how to get resize bitmap image using stretchblt
Revision 3
In my mfc application I have two dialog.
My code is
FirstDlg.cpp
void CFirstDlg::CapturePhoto()
{
HDC hDC, hMemDC,destinationDC;
HWND wnd,wnd1;
CSecondDlg dlgWin2;
if(IDOK==dlgWin2.DoModal())
{
((CStatic*)m_cTab.GetDlgItem(6))->SetBitmap(dlgWin2.m_hBmp)
DeleteObject(dlgWin2.m_hBmp);
}
}
SecondDlg.h
public:
HBITMAP m_hBmp; CSecondDlg(CWnd* pParent = NULL); CStatic m_nHeight;
SecondDlg.cpp
void CSecondDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_pic, m_nHeight);
}
void SecondDlg::OnBnClickedButton1()
{
if(m_flag && m_hBmp)
{
capEditCopy(hMyWindow);
OpenClipboard();
m_hBmp = (HBITMAP)::GetClipboardData(CF_BITMAP);
BITMAP bm;
GetObject(m_hBmp,sizeof(BITMAP),&bm);
HDC TempHDC;
TempHDC = ::CreateCompatibleDC(NULL);
hOldBitmap2 = (HBITMAP)SelectObject(TempHDC,m_hBmp);
::StretchBlt(TempHDC,245,26, 50, 50, TempHDC, 245,26, bm.bmWidth,bm.bmHeight, SRCCOPY );
SelectObject(TempHDC,hOldBitmap2);
hOldBitmap2=CreateCompatibleBitmap(TempHDC, 50, 50);
m_nHeight.SetBitmap(hOldBitmap2);
m_hBmp=hOldBitmap2;
DeleteDC(TempHDC);
CloseClipboard();
}
}
I have picture control(id is IDC_pic) on SecondDlg.
Now IDC_pic got black screen.
Posted 21-Nov-12 18:19pm
by
Member 7909353.