Click here to Skip to main content
15,894,907 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more: , +
I want to set bitmap image on CStatic control.

C++
capEditCopy(hMyWindow);
		OpenClipboard();
		 m_hBmp = (HBITMAP)::GetClipboardData(CF_BITMAP);
		CloseClipboard();
		m_bmp.Detach();
		m_bmp.Attach(m_hBmp);
((CStatic*)m_cTab1.GetDlgItem(6))->SetBitmap(m_bmp);

It gives debug assertion failed!
Posted
Comments
Member 7909353 5-Nov-12 23:55pm    
Actually my control is referenced by m_cTab.
Here I was tying to get dlgitem by m_cTab1.

The application must not use the handle after the EmptyClipboard or CloseClipboard function is called, or after the SetClipboardData function is called with the same clipboard format.

C++
capEditCopy(hMyWindow);
		OpenClipboard();
		 m_hBmp = (HBITMAP)::GetClipboardData(CF_BITMAP);

		m_bmp.Detach();
		m_bmp.Attach(m_hBmp);
((CStatic*)m_cTab1.GetDlgItem(6))->SetBitmap(m_bmp);
CloseClipboard();

Please check like this.
 
Share this answer
 
Comments
Member 7909353 5-Nov-12 6:50am    
Same error is occurred
Santhosh G_ 5-Nov-12 8:54am    
Which call gives access violation ?
I suspect (CStatic*)m_cTab1.GetDlgItem(6))
Santhosh G_ 5-Nov-12 17:26pm    
To display the bitmap in static window, you have to modify window style SS_BITMAP, and send STM_SETIMAGE message is required.
pStatic->ModifyStyle( 0, SS_BITMAP, SWP_SHOWWINDOW );
::SendMessage( pStatic->->m_hWnd, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)m_bmp.m_hObject);
Member 7909353 5-Nov-12 23:53pm    
Yes.
Thanks!
C#
void abcDlg::CapturePhoto()
{
    //dlgWin2.m_cTab1=m_cTab;
    CWin2Dlg dlgWin2;

    if(IDOK==dlgWin2.DoModal())// && (!dlgWin2.Image().Empty()))
            {
                ((CStatic*)m_cTab.GetDlgItem(6))->SetBitmap(dlgWin2.m_hBmp);
            }
}
void CWin2Dlg::OnBnClickedButton1()
{
	if(CaptureFlag && m_hBmp)
	{
		bool iop=capEditCopy(hMyWindow);
		OpenClipboard();
		 m_hBmp = (HBITMAP)::GetClipboardData(CF_BITMAP);
		 CloseClipboard();	
	}
}
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900