Icons in Tab

JaD

Mitglied
Hallo Ihr,
ich habe da noch ein paar Probleme.
Vielleicht hat jemand von euch Erfahrungen in dem Bereich.
Also die Situation ist diese:
ich habe einen Dialog, dem ich einen CTabCtrl hinzugefügt habe. Das hat auch noch alles wunderbar funktioniert. Jetzt wollte ich noch Icons oben in das Register einfügen, damit da nicht nur der Name des Tabs steht, sondern auch noch ein Bildchen ist.
Das funktioniert nur leider nicht.

Code:
	CImageList imList;


//in der OnInitDialogs-Funktion

	imList.Create(16,16,0,3,3);

	imList.Add(AfxGetApp()->LoadIcon(IDR_ICO_TOOLS));
	imList.Add(AfxGetApp()->LoadIcon(IDR_ICO_OUTPUT));


	m_tabCtrl.InsertItem(0, _T("Tools"), 1);
	m_tabCtrl.InsertItem(1, _T("Output"), 2);
	m_tabCtrl.InsertItem(2, _T("Other"), 3);

	m_tabCtrl.SetImageList(&imList);

	TC_ITEM tcItem;

	tcItem.mask = TCIF_IMAGE;
	tcItem.iImage = 1;

	m_tabCtrl.Init();

	m_tabCtrl.SetItem(0, &tcItem);

Es läuft zwar durch und in den Tabs wird auch "platz gemacht", aber der Platz bleibt leer. Die Icons werden nicht dargestellt.

Bin über jeden Tipp froh.

Grüße JaD
 

pschilling

Erfahrenes Mitglied
Hi,

also wie dein Code vermuten lässt, initialisierst du die Variable deiner Imagelist in der Funktion, in welcher du die Items einfügst !

Des geht net.

Deine Imagelist hat dann nämlich nur die Gültigkeit der Dauer dieser Funktion !

Halte dir stattdessen die Variable für deine ImageList in deiner Klasse und kreiere sie dann in deiner OnInitDIalog() oder so !

Versuchs mal, sonst melde dich wieder ;-)

Grüße,

Pit
 

JaD

Mitglied
Hi,
danke, das war mir selber auch schon aufgefallen.
Aber eine Änderung hats leider auch nicht gebracht.
Gruß JaD
 

JaD

Mitglied
Hmm, also irgendwas schien mit meinen Icons nicht zu stimmen.
Habe jetzt nen anderes genommen, was ich ohnehin schon im Programm benutzt habe, jetzt wird zumindest auf dem ersten Tab etwas angezeigt. Nur warum auf den anderen nicht, weiß ich noch nicht.
Gruß Janine
 

JaD

Mitglied
^^ So, nach nen bißchen hin und her, läuft es jetzt.

Falls es jemanden interessiert:


Code:
imList.Create(16,16,0,3,3); 

imList.Add(AfxGetApp()->LoadIcon(IDI_ICON2)); 
imList.Add(AfxGetApp()->LoadIcon(IDI_ICON3)); 
imList.Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME)); 


m_tabCtrl.InsertItem(0, _T("Tools"), 1); 
m_tabCtrl.InsertItem(1, _T("Output"), 2); 
m_tabCtrl.InsertItem(2, _T("Other"), 3); 

m_tabCtrl.SetImageList(&imList);

So siehts jetzt aus und läuft.

Gruß Janine