Click here to Skip to main content
12,945,575 members (52,655 online)
Rate this:
 
Please Sign up or sign in to vote.
void CPictureCtrl::FreeImage()
{
FreeData();
Graphics graphics( GetDC()->GetSafeHdc() );
graphics.Clear(Color::Transparent);
// or any other color ; see Gdiplus..
}


m_picCtrl.FreeImage();
	CFile picFile;
	if(picFile.Open(_T("acoustic grand piano_small.png"), CFile::modeReadWrite | CFile::typeBinary))
	{
		cout("opened");
		BYTE* pBuffer = new BYTE[(unsigned int)picFile.GetLength()];
		if(pBuffer != NULL)
		{
			picFile.Read(pBuffer, (UINT)picFile.GetLength());
 
			//Load the Image
			cout("displayed");
				m_picCtrl.Load(pBuffer, (size_t)picFile.GetLength());
 
			delete pBuffer;
		}
	}



When I freeImage which should clear the png and display new i am getting black background. But I need transparent background.


My objective is display png and when I display new png it should clear the previous pic.

I have used CStatic control to display the png.
Posted 3-May-12 18:54pm
chaiein1.8K
Updated 3-May-12 18:55pm
v2

1 solution

Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

Add
Invalidate(true);


m_picCtrl.FreeImage();
    CFile picFile;
    if(picFile.Open(_T("acoustic grand piano_small.png"), CFile::modeReadWrite | CFile::typeBinary))
    {
        cout("opened");
        BYTE* pBuffer = new BYTE[(unsigned int)picFile.GetLength()];
        if(pBuffer != NULL)
        {
            picFile.Read(pBuffer, (UINT)picFile.GetLength());
 
            //Load the Image
            cout("displayed");
                m_picCtrl.Load(pBuffer, (size_t)picFile.GetLength());
 
            delete pBuffer;
        }
    }
Invalidate(true);
  Permalink  

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

    Print Answers RSS
Top Experts
Last 24hrsThis month
OriginalGriff 4,899
CHill60 3,170
Maciej Los 2,443
Jochen Arndt 1,910
ppolymorphe 1,775


Advertise | Privacy | Mobile
Web01 | 2.8.170518.1 | Last Updated 4 May 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100