CImagelist komplett zu Bitmap konvertieren
-
Hallo,
ich habe von einer CToolbar die Imagelist. Jetzt möchte ich die komplette Imagelist in ein einzelnes Bitmap umwandeln. Ich habe schon alles versucht aber ich weiß nicht weiter.
Weiß jemand wie das geht ?
-
Was hast Du denn probiert?
1. Erzeuge einen Memory DC.
2. Erzeuge und Selektiere eine Bitmap Deiner gewünschten Größe.
3. Bau eine Schleife die alle Symbole per Draw in diesen DC schreibt.
-
Supi genau das habe ich jezt vor.
Hier das Beispil
Imagelist einer ToolbarCClientDC pDC(this); CToolBarCtrl& Ctrl = GetToolBarCtrl(); int N = Ctrl.GetButtonCount(); CDC dc; dc.CreateCompatibleDC(&pDC); bmp->CreateCompatibleBitmap(&pDC,m_sizeImage.cx*N, m_sizeImage.cy); CBitmap* pOldBmp = dc.SelectObject(bmp); CBrush brush ; COLORREF m_newclrBack; m_newclrBack=GetSysColor(COLOR_3DFACE); brush.CreateSolidBrush(m_newclrBack); for(int i=0;i<N;i++) { HICON hIcon = imglist->ExtractIcon(i); ::DrawIconEx( dc.GetSafeHdc(), m_sizeImage.cx*i, 0, hIcon, m_sizeImage.cx*i+m_sizeImage.cx, m_sizeImage.cy, 0, (HBRUSH)brush, DI_NORMAL ); ::DestroyIcon(hIcon); } dc.SelectObject( pOldBmp ); dc.DeleteDC();sollte das so gehen?
-
Nö! Du kannst doch ImageList_Draw verwenden.
Warum der Umweg über ein Icon?
-
Yes!!
ist noch besser, danke Dir.