TB_SETIMAGELIST-Meldung

Hiermit wird die Bildliste festgelegt, die von der Symbolleiste zum Anzeigen von Schaltflächen verwendet wird, die sich im Standardzustand befinden.

Parameter

wParam

Version 5.80. Dies ist der Index der Liste. Wenn Sie nur eine Bildliste oder eine frühere Version der allgemeinen Steuerelemente verwenden, legen Sie wParam auf 0 fest. Ausführliche Informationen zur Verwendung mehrerer Bildlisten finden Sie in den Hinweisen.

lParam

Dies ist das Handle für die festzulegende Bildliste. Wenn dieser Parameter NULL entspricht, werden keine Bilder auf den Schaltflächen angezeigt.

Rückgabewert

Hiermit wird das Handle an die Bildliste zurückgegeben, die zuvor zum Anzeigen von Schaltflächen im Standardzustand verwendet wurde. NULL wird zurückgegeben, wenn zuvor keine Bildliste festgelegt wurde.

Hinweise

Hinweis

Ihre Anwendung ist für das Freigeben der Bildliste verantwortlich, nachdem die Symbolleiste entfernt wurde.

Die TB_SETIMAGELIST-Meldung kann nicht mit TB_ADDBITMAP kombiniert werden. Sie kann auch nicht mit Symbolleisten verwendet werden, die mit CreateToolbarEx erstellt wurden (ruft TB_ADDBITMAP intern auf). Wenn Sie eine Symbolleiste mit CreateToolbarEx erstellen oder TB_ADDBITMAP verwenden, um Bilder hinzuzufügen, verwaltet die Symbolleiste die Bildliste intern. Der Versuch, sie mit TB_SETIMAGELIST zu ändern, hat unvorhersehbare Folgen.

Ab Version 5.80 der allgemeinen Steuerelemente müssen Schaltflächenbilder nicht aus derselben Bildliste stammen. Führen Sie die folgenden Schritte aus, um mehrere Bildlisten für Ihre Symbolleisten-Schaltflächenbilder zu verwenden:

  1. Aktivieren Sie mehrere Bildlisten, indem Sie dem Symbolleisten-Steuerelement eine CCM_SETVERSION-Meldung senden, wobei wParam (Versionsnummer) auf „5“ festgelegt ist.
  2. Senden Sie dem Symbolleisten-Steuerelement für jede Bildliste, die Sie verwenden möchten, eine TB_SETIMAGELIST-Meldung. Legen Sie wParam auf einen anwendungsdefinierten wParam-Wert fest, der zum Identifizieren der Liste verwendet wird. Legen Sie lParam auf das HIMAGELIST-Handle der Liste fest.
  3. Legen Sie den iBitmap-Member der TBBUTTON-Struktur der Schaltfläche für jede Schaltfläche auf MAKELONG(iIndex, iImageID) fest. Der iImageID-Wert ist die ID der entsprechenden Bildliste, die in Schritt 2 definiert wurde. Der iIndex-Wert ist der Index des jeweiligen Bilds innerhalb dieser Liste.
  4. Fügen Sie die Schaltflächen hinzu, indem Sie dem Symbolleisten-Steuerelement eine TB_ADDBUTTONS-Meldung senden.

Das folgende Codefragment veranschaulicht, wie Sie einer Symbolleiste fünf Schaltflächen hinzufügen, wobei die Bildern aus drei verschiedenen Bildlisten stammen. Die Unterstützung für mehrere Bildlisten wird mit einer CCM_SETVERSION-Meldung aktiviert. Die Bildlisten werden dann festgelegt, und ihnen werden IDs von 0 bis 2 zugewiesen. Den Schaltflächen werden Bilder aus den Bildlisten wie folgt zugewiesen:

  • Schaltfläche 0 stammt aus der Bildliste 0 (ahim[0]) mit dem Index 1.
  • Schaltfläche 1 stammt aus der Bildliste 1 (ahim[1]) mit dem Index 1.
  • Schaltfläche 2 stammt aus der Bildliste 2 (ahim[2]) mit dem Index 1.
  • Schaltfläche 3 stammt aus der Bildliste 0 (ahim[0]) mit dem Index 2.
  • Schaltfläche 4 stammt aus der Bildliste 1 (ahim[1]) mit dem Index 3.

Schließlich werden die Schaltflächen dem Symbolleisten-Steuerelement mit einer TB_ADDBUTTONS-Meldung hinzugefügt.

//Enable multiple image lists
    SendMessage(hwndTB, CCM_SETVERSION, (WPARAM) 5, 0); 

    //Set the image lists and assign them IDs of 0-2
    SendMessage(hwndTB, TB_SETIMAGELIST, 0, (LPARAM)ahiml[0]);
    SendMessage(hwndTB, TB_SETIMAGELIST, 1, (LPARAM)ahiml[1]);
    SendMessage(hwndTB, TB_SETIMAGELIST, 2, (LPARAM)ahiml[2]);

    // Create the five buttons
    TBBUTTON rgtb[5];
    
    //... initialize the TBBUTTON structures as usual ...
    
    //Assign images to each button
    rgtb[0].iBitmap = MAKELONG(1, 0);
    rgtb[1].iBitmap = MAKELONG(1, 1);
    rgtb[2].iBitmap = MAKELONG(1, 2);
    rgtb[3].iBitmap = MAKELONG(2, 0);
    rgtb[4].iBitmap = MAKELONG(3, 1);

    // Add the five buttons to the toolbar control
    SendMessage(hwndTB, TB_ADDBUTTONS, 5, (LPARAM)(&rgtb);

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2003 [nur Desktop-Apps]
Header
Commctrl.h

Siehe auch

MAKELONG