<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Icon in Sub-Item eines List Views hinzufügen (LVS_REPORT-Style)]]></title><description><![CDATA[<p>Hallöchen,</p>
<p>ich habe ein kleines (hoffentlich) Problem mit einem List View-Element.<br />
Und zwar klappt das Erstellen und Einfügen von Items schon wunderbar, leider kann ich Icons nur in der ganz linken Spalte darstellen.</p>
<p>Hier ein Bild, wie es aussieht:</p>
<p><a href="http://derfeind2k.de/daten/listview.jpg" rel="nofollow">http://derfeind2k.de/daten/listview.jpg</a></p>
<p>Links bei der roten Markierung kann man Icons einbauen, rechts sollen in die 3te Spalte auch Icons hin, dies funktioniert allerdings nicht. Ich verwende als Code den selben wie zum Einfügen des Icons in die erste Spalte, wo es funktioniert.</p>
<p>Dies ist erstmal der Code zum setzen des Icons in das jeweilige Item:</p>
<pre><code class="language-cpp">void ctrl_listbox::set_item_image(int index, int column, int image_index)
{
    int temp_index = SendMessage(hwnd, LVM_GETITEMCOUNT, 0, 0);
    if (index &lt; temp_index)
    {
        temp_index = index;
    }

    LV_ITEM item;

    item.mask = LVIF_IMAGE;
    item.iItem = temp_index;
    item.iSubItem = column; 
    item.state = 0; 
    item.stateMask = 0; 
    item.pszText = 0; 
    item.cchTextMax = 0; 
    item.iImage = image_index;
    item.lParam = 0;

    SendMessage(hwnd, LVM_SETITEM, 0, (int)&amp;item);
}
</code></pre>
<p>Man gibt also den Zeilenindex, die Spalte und den Index des Images aus der Imagelist an und dort soll es dann erstellt werden. Klappt auch prima, solange man als Spalte &quot;0&quot; nimmt, und damit die ganz linke Spalte.</p>
<p>Das Listview-Element wird wie folgt erstellt:</p>
<pre><code class="language-cpp">void ctrl_listbox::create(int command, int p_pos_x, int p_pos_y, int p_size_x, int p_size_y, char* text, int p_size, HWND p_parent, int style)
{
    hwnd = CreateWindowEx(   WS_EX_CLIENTEDGE,
                             WC_LISTVIEW,
                             NULL,
                             WS_CHILD | WS_VISIBLE | WS_VSCROLL | LVS_REPORT | LVS_NOSORTHEADER	| LVS_SHOWSELALWAYS | style,
                             p_pos_x, p_pos_y, p_size_x, p_size_y,
                             parent,
                             (HMENU)command,
                             GetModuleHandle(0),        //Instance of current application
                             NULL);

    SendMessage(hwnd, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), true);
    SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_GRIDLINES, LVS_EX_GRIDLINES);            //Grindlines
    SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);    //Full row selected

    himagelist = ImageList_Create(16, 16, ILC_COLOR32, 0, 100);                                     //Create imagelist
    SendMessage( hwnd , LVM_SETIMAGELIST , LVSIL_SMALL, (LPARAM)himagelist);                        //Add imagelist to listview

    LV_COLUMN column;
    column.mask = LVCF_TEXT	|LVCF_WIDTH | LVCF_FMT; 
    column.fmt = LVCFMT_LEFT; 
    column.cx = p_size; 
    column.pszText = text; 
    column.cchTextMax = strlen(text); 
    column.iSubItem = NULL; 

    SendMessage(hwnd, LVM_INSERTCOLUMN, 0, (int)&amp;column);
}
</code></pre>
<p>Es ist also ein &quot;LVS_REPORT&quot;-Element (von den 4 Styles, die es da gibt) und wie in der WinAPI-Help steht, wird dort Standardgemäß links in der ersten Spalte ein Icon angezeigt. Könnte das bedeuten, dass man NUR dort ein icon anzeigen kann und in den anderen Spalten jeweils nur Text? Jedenfalls gibt es ja noch andere Styles wie LVS_ICON oder LVS_LIST, wo bei jedem Element ein Icon und Text dabei ist. Allerdings fehlt mir da der Header mit den Spalten, wie beim LVS_REPORT-Element, welches ich deshalb hier verwende.<br />
Die Frage ist, gibt es vielleicht eine Möglichkeit, trotzdem Icons (bzw Images aus der Imagelist des Fensters) hinzuzufügen, in die 3te Spalte dieses List Views?</p>
<p>Ich wär für jeden Tipp oder Lösungs-Hinweis sehr dankbar.</p>
<p>Grüße,</p>
<p>Ynnus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/158112/icon-in-sub-item-eines-list-views-hinzufügen-lvs_report-style</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Jul 2026 07:00:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158112.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 01 Sep 2006 14:04:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Icon in Sub-Item eines List Views hinzufügen (LVS_REPORT-Style) on Fri, 01 Sep 2006 14:04:11 GMT]]></title><description><![CDATA[<p>Hallöchen,</p>
<p>ich habe ein kleines (hoffentlich) Problem mit einem List View-Element.<br />
Und zwar klappt das Erstellen und Einfügen von Items schon wunderbar, leider kann ich Icons nur in der ganz linken Spalte darstellen.</p>
<p>Hier ein Bild, wie es aussieht:</p>
<p><a href="http://derfeind2k.de/daten/listview.jpg" rel="nofollow">http://derfeind2k.de/daten/listview.jpg</a></p>
<p>Links bei der roten Markierung kann man Icons einbauen, rechts sollen in die 3te Spalte auch Icons hin, dies funktioniert allerdings nicht. Ich verwende als Code den selben wie zum Einfügen des Icons in die erste Spalte, wo es funktioniert.</p>
<p>Dies ist erstmal der Code zum setzen des Icons in das jeweilige Item:</p>
<pre><code class="language-cpp">void ctrl_listbox::set_item_image(int index, int column, int image_index)
{
    int temp_index = SendMessage(hwnd, LVM_GETITEMCOUNT, 0, 0);
    if (index &lt; temp_index)
    {
        temp_index = index;
    }

    LV_ITEM item;

    item.mask = LVIF_IMAGE;
    item.iItem = temp_index;
    item.iSubItem = column; 
    item.state = 0; 
    item.stateMask = 0; 
    item.pszText = 0; 
    item.cchTextMax = 0; 
    item.iImage = image_index;
    item.lParam = 0;

    SendMessage(hwnd, LVM_SETITEM, 0, (int)&amp;item);
}
</code></pre>
<p>Man gibt also den Zeilenindex, die Spalte und den Index des Images aus der Imagelist an und dort soll es dann erstellt werden. Klappt auch prima, solange man als Spalte &quot;0&quot; nimmt, und damit die ganz linke Spalte.</p>
<p>Das Listview-Element wird wie folgt erstellt:</p>
<pre><code class="language-cpp">void ctrl_listbox::create(int command, int p_pos_x, int p_pos_y, int p_size_x, int p_size_y, char* text, int p_size, HWND p_parent, int style)
{
    hwnd = CreateWindowEx(   WS_EX_CLIENTEDGE,
                             WC_LISTVIEW,
                             NULL,
                             WS_CHILD | WS_VISIBLE | WS_VSCROLL | LVS_REPORT | LVS_NOSORTHEADER	| LVS_SHOWSELALWAYS | style,
                             p_pos_x, p_pos_y, p_size_x, p_size_y,
                             parent,
                             (HMENU)command,
                             GetModuleHandle(0),        //Instance of current application
                             NULL);

    SendMessage(hwnd, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), true);
    SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_GRIDLINES, LVS_EX_GRIDLINES);            //Grindlines
    SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);    //Full row selected

    himagelist = ImageList_Create(16, 16, ILC_COLOR32, 0, 100);                                     //Create imagelist
    SendMessage( hwnd , LVM_SETIMAGELIST , LVSIL_SMALL, (LPARAM)himagelist);                        //Add imagelist to listview

    LV_COLUMN column;
    column.mask = LVCF_TEXT	|LVCF_WIDTH | LVCF_FMT; 
    column.fmt = LVCFMT_LEFT; 
    column.cx = p_size; 
    column.pszText = text; 
    column.cchTextMax = strlen(text); 
    column.iSubItem = NULL; 

    SendMessage(hwnd, LVM_INSERTCOLUMN, 0, (int)&amp;column);
}
</code></pre>
<p>Es ist also ein &quot;LVS_REPORT&quot;-Element (von den 4 Styles, die es da gibt) und wie in der WinAPI-Help steht, wird dort Standardgemäß links in der ersten Spalte ein Icon angezeigt. Könnte das bedeuten, dass man NUR dort ein icon anzeigen kann und in den anderen Spalten jeweils nur Text? Jedenfalls gibt es ja noch andere Styles wie LVS_ICON oder LVS_LIST, wo bei jedem Element ein Icon und Text dabei ist. Allerdings fehlt mir da der Header mit den Spalten, wie beim LVS_REPORT-Element, welches ich deshalb hier verwende.<br />
Die Frage ist, gibt es vielleicht eine Möglichkeit, trotzdem Icons (bzw Images aus der Imagelist des Fensters) hinzuzufügen, in die 3te Spalte dieses List Views?</p>
<p>Ich wär für jeden Tipp oder Lösungs-Hinweis sehr dankbar.</p>
<p>Grüße,</p>
<p>Ynnus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1129179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1129179</guid><dc:creator><![CDATA[Ynnus]]></dc:creator><pubDate>Fri, 01 Sep 2006 14:04:11 GMT</pubDate></item><item><title><![CDATA[Reply to Icon in Sub-Item eines List Views hinzufügen (LVS_REPORT-Style) on Tue, 05 Sep 2006 09:27:31 GMT]]></title><description><![CDATA[<p>Hat denn hier echt noch niemand ein List View Fenster mit mehreren Icons in den Spalten erstellt? Ich suche doch nur eine Möglichkeit, das zu machen. Ein Code-Beispiel oder ein Tutorial, irgendwas, wo man sehen kann, wie man das machen kann und das es überhaupt machbar ist mit dem LVS_REPORT-Style.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1131339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131339</guid><dc:creator><![CDATA[Ynnus]]></dc:creator><pubDate>Tue, 05 Sep 2006 09:27:31 GMT</pubDate></item><item><title><![CDATA[Reply to Icon in Sub-Item eines List Views hinzufügen (LVS_REPORT-Style) on Sun, 10 Sep 2006 22:01:13 GMT]]></title><description><![CDATA[<p>Lol, hab grad mal was gefunden, was dich vllt. weiterbringen könnte...:</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /><br />
LVS_EX_SUBITEMIMAGES<br />
Version 4.70.<br />
Allows images to be displayed for subitems.<br />
This style is available only in conjunction with the LVS_REPORT style.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1134828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1134828</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 10 Sep 2006 22:01:13 GMT</pubDate></item><item><title><![CDATA[Reply to Icon in Sub-Item eines List Views hinzufügen (LVS_REPORT-Style) on Thu, 21 Sep 2006 10:57:14 GMT]]></title><description><![CDATA[<p>Es geht, ich glaub's ja nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Vielen vielen herzlichen Dank, das ist echt ne Sache gewesen die mir Kopfzerbrechen bereitet hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141711</guid><dc:creator><![CDATA[Ynnus]]></dc:creator><pubDate>Thu, 21 Sep 2006 10:57:14 GMT</pubDate></item><item><title><![CDATA[Reply to Icon in Sub-Item eines List Views hinzufügen (LVS_REPORT-Style) on Thu, 21 Sep 2006 13:23:04 GMT]]></title><description><![CDATA[<p>Ynnus schrieb:</p>
<blockquote>
<p>Es geht, ich glaub's ja nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Vielen vielen herzlichen Dank, das ist echt ne Sache gewesen die mir Kopfzerbrechen bereitet hat.</p>
</blockquote>
<p>Und ich dachte schon, dass du es gar nicht mehr brauchst - perfekt konnte ich ja doch helfen *freu* ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141846</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 21 Sep 2006 13:23:04 GMT</pubDate></item></channel></rss>