Link to home
Start Free TrialLog in
Avatar of dani333
dani333

asked on

Can't see a picture which combine from CImageList

Hi,
I have a list of pics which combine to one picture ,and i can see it on the Image rect
when the background is not painted,but if i paint the background i can't see it any more
i just see now an empty space where it should be.
What should i do?
///////////////////////Fixed code after your help//////////////
CRect rect;
CRect rect1;
m_cMouth.GetWindowRect(&rect1);    // screen coordinates
 ScreenToClient(&rect1);            // client coordinates
CPaintDC dc(this);
dc.ExcludeClipRect(rect1);
CPen p[64];
int i,factor;
GetClientRect(&rect);
factor=rect.bottom/63;
for(i=0;i<64;i++)
   p[i].CreatePen(PS_SOLID,1,RGB(250,120+i*2,0));
for(i=0;i<rect.bottom;i++)
    {
      dc.SelectObject(&p[i/factor]);
      dc.MoveTo(0,i);
      dc.LineTo(rect.right,i);
   }
/* If i put this code in comments i can see the pics*/



///////////////////////////////////////////////////////////

CPaintDC dc(this);
CDialog::OnPaint();
// Draw into memory DC
m_cMouthList.Draw(&dc, 0, m_cMouthRect.TopLeft(), INDEXTOOVERLAYMASK(m_iMouthBmp));
if (m_iMouthBmp % 6 == 2)
 {
    m_cMouthList.Draw(&dc, WEYESNAR, m_cMouthRect.TopLeft(), 0 );
 }
else if (m_iMouthBmp % 6 == 5)
 {
   m_cMouthList.Draw(&dc, WEYESCLO, m_cMouthRect.TopLeft(), 0 );
 }


///////////////////////////////////////////////////////////////////////////


InitMouthImageList()
{
     m_cMouth.GetClientRect(&m_cMouthRect);
     m_cMouth.ClientToScreen(&m_cMouthRect);
     ScreenToClient(&m_cMouthRect);

     CBitmap bmp;
                m_cMouthList.Create(CHARACTER_WIDTH, CHARACTER_HEIGHT, ILC_COLOR32  
                |ILC_MASK, 1, 0);

     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICFULL));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICMOUTH2));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICMOUTH3));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICMOUTH4));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICMOUTH5));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICMOUTH6));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICMOUTH7));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICMOUTH8));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICMOUTH9));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICMOUTH10));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICMOUTH11));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICMOUTH12));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICMOUTH13));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICEYESNAR));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     bmp.LoadBitmap(MAKEINTRESOURCE(IDB_MICEYESCLO));
     m_cMouthList.Add(&bmp, RGB(255,0,255));
     bmp.Detach();
     
     m_cMouthList.SetOverlayImage(1, 1);
     m_cMouthList.SetOverlayImage(2, 2);
     m_cMouthList.SetOverlayImage(3, 3);
     m_cMouthList.SetOverlayImage(4, 4);
     m_cMouthList.SetOverlayImage(5, 5);
     m_cMouthList.SetOverlayImage(6, 6);
     m_cMouthList.SetOverlayImage(7, 7);
     m_cMouthList.SetOverlayImage(8, 8);
     m_cMouthList.SetOverlayImage(9, 9);
     m_cMouthList.SetOverlayImage(10, 10);
     m_cMouthList.SetOverlayImage(11, 11);
     m_cMouthList.SetOverlayImage(12, 12);
     m_cMouthList.SetOverlayImage(13, 13);
     m_cMouthList.SetOverlayImage(14, WEYESNAR);
     m_cMouthList.SetOverlayImage(15, WEYESCLO);

     return TRUE;
}
Avatar of desabhotlas
desabhotlas

try using CDC object instead of CPaintDC, use CPaintDC only in OnPaint function

CDC *pdc = GetDC();
.
.
..


ASKER CERTIFIED SOLUTION
Avatar of Computer101
Computer101
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial