Fragen zu Imageliste
-
Frage 1:
Was ist eigentlich der Sinn einer Imageliste? Man kann doch auch die Icons oder Bitmaps aus der Resource laden. Bei einer Imageliste hat man ja dann immer eine festgelegte Größe für die Bilddaten und ist so weniger flexibel.Frage 2:
Wenn ich nun mit mehreren Chilfenstern arbeite und für diese verschiedene Imagelisten anlege, wobei sagen wir mal eine Imagliste 32x32 große Icons eine ander 16x16 große Icons enthält, kann ich dann auch einem Fenster dem die Imageliste eigenlich nicht zugeordnet ist auf diese Zugreifen und die Images nutzen oder ist der Sinn der Imageliste den ich unter Frage (1) gestellt habe damit futsch?Ich hab hier auch den Petzhold leider finde ich im Inhaltsverzeichniss nirgens einen Betrag zur Imagliste, wenn da was drinsteht, vieleicht kann mir jemand das Kapitel nennen, danke.
Gruß Thomas
-
Hinweis: Siehe mal bei Petzold im Kapitel 'Bitmaps in DLL' nach, dann bist Du sehr flexibel im Einsatz Deiner Icons. Die Manipulation 32x32 16x16 musst Du dann selbst erledigen.
-
berniebutt schrieb:
Die Manipulation 32x32 16x16 musst Du dann selbst erledigen.
Ähm ich wollte die Icons eigentlich nicht manipulieren, die 16x16 Liste enthält ganz andere "Motive" als die 32x32 Liste. Ich möchte lediglich an veschiedenen Stellen in meinem Fenster verschiedene Icons verschiedener Größe benutzen. Daher meine Frage nach dem Sinn der Imageliste, (ob die wohl besonders schnell ist?) oder ob ich die Icons einfach aus meiner mitglieferten Resource einzeln heraushole und im Fenster abbilde und keinen Geschwindigkeitsverlust spüre. Der Hintergrund ist folgender, ich habe hier einen Listview mit einer variablen Anzahl von Elementen, die Anzahl der Zeilen kann schon mal auf 50000 Elemente anwachsen. In diese Zeilen wird per Ownerdraw einiges an Icons und Bitmaps eingefügt, daher auch meine Bedenken bezüglich der Geschwindigkeit.
-
Die Imageliste bietet u.a. auch sehr komfortable Zeichenfunktionen. Man kann die Icons nicht nur normal zeichnen sondern auch ausgeschnitten oder etwas hervorgehoben.
ImageList_Draw
ImageList_DrawEx
ImageList_DrawIndirectWenn es darum geht, mehrere gleichgroße Symbole (z.B. Icons) zu verwalten und zu zeichnen, dann würde ich die Imageliste immer vorziehen.