From: mfc on
Hi,

how is it possible to add a background image to a CIPAddressCtrl
control generated by the resource editor?

I`ve written my own subclass (CImageIpAddress), where I can change the
textcolor as well as the text-background-color in the OnCtlColor
handle.

Moreover I integrated a OnPaint() method where the background-image
should be created - but it failed... At the moment only the points
between the edit control fields are gone....

CImageList m_ImageList;
BITMAP m_bitmap;
CRect m_rectBtn;
BOOL m_bLoaded;

void CImageIpAddress::OnPaint()
{
CDC *pDC = GetDC();

if(m_bLoaded)
m_ImageList.DrawIndirect(pDC ,
CPoint( m_rectBtn.left,m_rectBtn.top ),
CSize( m_bitmap.bmWidth , m_bitmap.bmHeight ),
CPoint( 0 , 0 ) ,
ILD_NORMAL);

ReleaseDC(pDC);
}

And here`s the function to load the image.

void CImageIpAddress::SetIpAddrImg(UINT uiImage)
{
CBitmap bitmapImage;

if( bitmapImage.LoadBitmap( uiImage ) )
{
bitmapImage.GetObject( sizeof( m_bitmap ) , &m_bitmap );
m_rectBtn.top =0;m_rectBtn.left =0;
m_rectBtn.right = m_bitmap.bmWidth; m_rectBtn.bottom
=m_bitmap.bmHeight;

if( m_ImageList.Create( m_bitmap.bmWidth ,
m_bitmap.bmHeight ,ILC_COLORDDB,1 ,2) )
{
m_ImageList.Add( &bitmapImage ,&bitmapImage);
bitmapImage.DeleteObject();
m_bLoaded = TRUE;
}
}
}

Maybe someone could give me some hints to integrate a background image
to this control. On other controls this method is working.

best regards
Hans
 | 
Pages: 1
Prev: MFC/C++ report writing?
Next: OPC server & MFC