Log in

View Full Version : writing on CTabCtrl image


rapidlord
07-08-2004, 03:08 PM
I have inserted image to tabs in tabcontrol of CPropertySheet:

CTabCtrl* pTab = GetTabControl();
ASSERT (pTab);

m_imageList.Create (60,36,ILC_COLOR, 0, 4);

CBitmap bm[4];
bm[0].LoadBitmap(IDB_TAB1);
m_imageList.Add(&bm[0], RGB(0, 0, 0));

bm[1].LoadBitmap(IDB_TAB2);
m_imageList.Add(&bm[1], RGB(0, 0, 0));

bm[2].LoadBitmap(IDB_TAB3);
m_imageList.Add(&bm[2], RGB(0, 0, 0));

bm[3].LoadBitmap(IDB_TAB4);
m_imageList.Add(&bm[3], RGB(0, 0, 0));

pTab->SetImageList (&m_imageList);

pTab->SetItemSize(CSize(60,30));
pTab->SetPadding(CSize(0,0));

TC_ITEM item;
item.mask = TCIF_IMAGE;

for (int j = 0; j < 4; j++)
{
item.iImage = j;
pTab->SetItem (j, &item);
}


-------------------------------------------------------------------------------
Naw i have dinamicly to create images and replace, so i done this:
-------------------------------------------------------------------------------

CTabCtrl* pTab = GetTabControl();
ASSERT (pTab);

CDC* pdc = GetDC();
tabCDC->CreateCompatibleDC(pdc);
tabBmp->CreateCompatibleBitmap(pdc,60,30);
tabCDC->SelectObject(tabBmp);

tabCDC->ExtTextOut(10,10,ETO_OPAQUE,CRect(0,0,60,30),_T("test"),NULL);

CImageList *tmpImageList = pTab->GetImageList();
tmpImageList->Replace(0,&tabCDC->GetCurrentBitmap(), NULL);


-------------------------------------------------------------------------------
but this dont work, problem is probabli in something with CDC, becouse when in Replace function , put some CBitmap loaded from the resource, every it is ok, the image is changed ok.

i realy need help on this, thank you.