Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

CBitmap u CTabCtrl kontroli (slike u tabovima)

[es] :: C/C++ programiranje :: CBitmap u CTabCtrl kontroli (slike u tabovima)

[ Pregleda: 2138 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

rapidlord
Vladan Markovic
dev
KG

Član broj: 10145
Poruke: 428
*.vdial.verat.net



+1 Profil

icon CBitmap u CTabCtrl kontroli (slike u tabovima)08.07.2004. u 15:00 - pre 241 meseci
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.
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.client.comcast.net



+1001 Profil

icon Re: CBitmap u CTabCtrl kontroli (slike u tabovima)08.07.2004. u 15:48 - pre 241 meseci
Cini mi se da si zaboravio operaciju prepisivanja sadrzaja bitmape iz trenutnog
CDC-ja u tabCDC, sto se obavlja funkcijom BitBLT (ili StretchBLT). Ovako naoko
izgleda da jedino to nedostaje.
 
Odgovor na temu

rapidlord
Vladan Markovic
dev
KG

Član broj: 10145
Poruke: 428
*.vdial.verat.net



+1 Profil

icon Re: CBitmap u CTabCtrl kontroli (slike u tabovima)08.07.2004. u 16:05 - pre 241 meseci
u tabCDC nebi trebalo nista da se prepise to je potpuno nov CDC prazan na kome se napise na primer "test", onda se iz njega uzme CBitmap funkcijom tabCDC->GetCurrentBitmap() i ubaci u tab funlcijom tmpImageList->Replace(0, ...
 
Odgovor na temu

[es] :: C/C++ programiranje :: CBitmap u CTabCtrl kontroli (slike u tabovima)

[ Pregleda: 2138 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.