Zum Inhalt springen

[C++/MFC] Problem mit farbigen Icons


MiBo

Empfohlene Beiträge

Hi,

ich habe ein kleines Problem bei der Verwendung von farbigen Icons. Ich erstelle diese dynamisch nach einer übergebenen COLORREF und verwende diese dann in einem Tree als Icon. Das ganze funktioniert auch in Windows Vista wunderbar, aber wenn ich es unter Windows XP ausführe sind alle farbigen Icons schwarz. Ich habe bereits alle möglichen Varianten der Maske und Initialisierung des Bitmaps und der ImageList versucht, aber das ERgebnis ist immer das gleiche.

Wäre super, wenn ein Experte aus der MFc was dazu weiß :) komme ja eigentlich aus dem .NET-Bereich und tue mir eh etwas schwer mit dem Verstehen.

// Initialisierung der ImageList

CImageList m_ImgList;

CBitmap bmp;


// IDB_TREEIMG ist ein 24-bit-Bild, dass ich anzeige, wenn kein COLORREF verfügbar ist, ganz nebenbei sorgt das Bild dafür, dass die ImageList als 24-bit-Liste inisitalisiert wird

bmp.LoadBitmap(IDB_TREEIMG);


m_ImgList.Create(16, 16, ILC_COLOR24 | ILC_MASK, 0, 1);

m_ImgList.Add(&bmp, RGB(255,255,255));

Die eigentlichen farbigen Icons erstelle ich dann folgendermaßen:

COLORREF colorRef; // wird der Funktion übergeben, nur zur Vollständigkeit aufgeführt.

CBitmap bitmap;

bitmap.CreateCompatibleBitmap(pViewDC, 16, 16);


CBitmap* pOldBitmap = memDC.SelectObject(&bitmap);

CBrush oBrush(colorRef);

CPen oPen (PS_SOLID,1,colorRef);

CBrush* pOldBrush =  memDC.SelectObject(&oBrush);

CPen * pOldPen = memDC.SelectObject(&oPen);


memDC.Rectangle(0,0,16,16);

pViewDC->SelectObject(pOldBitmap);


memDC.SelectObject(pOldBrush);

memDC.SelectObject(pOldPen);


ReleaseDC(pViewDC);


int pos = m_ImgList.Add(&bitmap, RGB(255,255,255));

Danke für jegliche Art von Hilfe :)

Viele Grüße

MiBo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, der erste Code-Block wird nur am Anfang zur Initialisierung der ImageList ausfgerufen. Wenn ich das Standard-Image mit 24-Bit nicht in die ImageList lade, hat sie aus irgendwelchen Gründen 8Bit, egal was ich einstelle.

Der zweite Code-Block ist dann eine Funktion, die mir ein neues farbiges Icon erstellt und der ImageList hinzufügt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...