[ rapidlord @ 08.07.2004. 15:00 ] @
Windows programiranje: ============================================================= Kod ispod funkcionise kako treba (nalazi se u klasi izvedenoj iz 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); } =========================================================== Medjutim ono sto meni treba je CBitmap koji nije ucitan iz resoursa, to jest koji se kreira dinamicki, a koji ce da zameni vec postojeci... 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); ============================================================= Kada uradim zamenu sa CBitmap-om koji je ucitan iz resursa onda je ok, ali kad napravim CDC nista ne dobijem, zbog cega mislim da nisam lepo odradio CDC - CBitmap inicijalizaciju, da li je "CDC* pdc = GetDC()" OK ??; . Ako neko moze da mi pomogne oko ovog problema bio bih mu zahvalan. |