<?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[Wie bekomm ich unterschiedlichen Text in die Spalten von ein ListView?]]></title><description><![CDATA[<p>hallöchen,</p>
<p>ich hab da nen problem, und zwar bekomm ich es einfach nicht hin, den aus unterschiedlichen<br />
Editbox ausgelesenen Text in jeweils eine Spalte reinzuschreiben. also:</p>
<pre><code>EBOX1: &quot;Hallo&quot;;
EBOX2: &quot;wie&quot;;
EBOX3: &quot;gehts&quot;;
EBOX4: &quot;?&quot;;

&gt;&gt;&gt;Button klick!, Button klick!, Button klick!, Button klick! ...

ListView:

Column0 | Column1 | Column2 | Column3 | Column4
===============================================
1       |Hallo    |wie      |gehts    |?
2       |Hallo    |wie      |gehts    |?
3       |Hallo    |wie      |gehts    |? 
4       |Hallo    |wie      |gehts    |?
...
</code></pre>
<p>ich weiss irgendwie nur wies mit einem wort geht:</p>
<pre><code>for( int i = 0; i &lt; 1; i++ ) {

	lvi.mask = LVIF_TEXT;
	lvi.iItem = i;
	lvi.iSubItem = 0;
	lvi.pszText = &quot;test&quot;;
	ListView_InsertItem( hLView, &amp;lvi );

        for ( int j=1; j&lt;6; ++j ) {

        	lvi.iSubItem = j;
        	ListView_SetItem( hLView, &amp;lvi);
        }
}
</code></pre>
<p>wer toll wenns mir einer veraten könnte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>achja noch was, wenn ich in eine Zeile klicke möchte ich das diese komplett makiert<br />
wird und nicht nur das erst Item.</p>
<p>Dank euch schon mal, Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178105/wie-bekomm-ich-unterschiedlichen-text-in-die-spalten-von-ein-listview</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 13:13:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178105.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Apr 2007 13:55:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie bekomm ich unterschiedlichen Text in die Spalten von ein ListView? on Sat, 07 Apr 2007 13:55:43 GMT]]></title><description><![CDATA[<p>hallöchen,</p>
<p>ich hab da nen problem, und zwar bekomm ich es einfach nicht hin, den aus unterschiedlichen<br />
Editbox ausgelesenen Text in jeweils eine Spalte reinzuschreiben. also:</p>
<pre><code>EBOX1: &quot;Hallo&quot;;
EBOX2: &quot;wie&quot;;
EBOX3: &quot;gehts&quot;;
EBOX4: &quot;?&quot;;

&gt;&gt;&gt;Button klick!, Button klick!, Button klick!, Button klick! ...

ListView:

Column0 | Column1 | Column2 | Column3 | Column4
===============================================
1       |Hallo    |wie      |gehts    |?
2       |Hallo    |wie      |gehts    |?
3       |Hallo    |wie      |gehts    |? 
4       |Hallo    |wie      |gehts    |?
...
</code></pre>
<p>ich weiss irgendwie nur wies mit einem wort geht:</p>
<pre><code>for( int i = 0; i &lt; 1; i++ ) {

	lvi.mask = LVIF_TEXT;
	lvi.iItem = i;
	lvi.iSubItem = 0;
	lvi.pszText = &quot;test&quot;;
	ListView_InsertItem( hLView, &amp;lvi );

        for ( int j=1; j&lt;6; ++j ) {

        	lvi.iSubItem = j;
        	ListView_SetItem( hLView, &amp;lvi);
        }
}
</code></pre>
<p>wer toll wenns mir einer veraten könnte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>achja noch was, wenn ich in eine Zeile klicke möchte ich das diese komplett makiert<br />
wird und nicht nur das erst Item.</p>
<p>Dank euch schon mal, Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261198</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Sat, 07 Apr 2007 13:55:43 GMT</pubDate></item><item><title><![CDATA[Reply to Wie bekomm ich unterschiedlichen Text in die Spalten von ein ListView? on Sat, 07 Apr 2007 17:55:56 GMT]]></title><description><![CDATA[<p>kann jetzt auch falsch sein, aber ich glaube du musst auch für die sub items insert item benutzen. damit alles angezeigt wird musst du das extented-style full row select setzen (schau mal in msdn).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261295</guid><dc:creator><![CDATA[Black Shadow]]></dc:creator><pubDate>Sat, 07 Apr 2007 17:55:56 GMT</pubDate></item><item><title><![CDATA[Reply to Wie bekomm ich unterschiedlichen Text in die Spalten von ein ListView? on Sun, 08 Apr 2007 08:31:57 GMT]]></title><description><![CDATA[<p>Ich hatte auch das Problem in meinem aktuellen Projekt, ich kopier dir gerade mal ein paar Codeschnippsel raus, gug's dir an so funktioniet es, den Code kann man mit Sicherheit noch Geschwindigkeits optimieren, unabhängig davon funktioiert er einwandfrei. Ach als Anmerkung nicht die Spalten in einem Listview gehören zusammen, sondern die Zeilen sind jeweils ein Datensatz.</p>
<p>Das Fenster erzeugen:</p>
<pre><code class="language-cpp">Wnd_ServerList = CreateWindowEx(WS_EX_CLIENTEDGE, WC_LISTVIEW, &quot;&quot;, WS_VISIBLE | WS_CHILD | LVS_REPORT | LVS_SHAREIMAGELISTS | LVS_SINGLESEL | LVS_SHOWSELALWAYS, 
	dim.xpos_server, dim.ypos_server, dim.xwidth_server, YHEIGHT_SERVER, hWndParent, NULL, hInst, NULL );
SetWindowLong(Wnd_ServerList, GWL_ID, LIST_SERVERS);
SendMessage (Wnd_ServerList, LVM_SETEXTENDEDLISTVIEWSTYLE, (WPARAM)0, (LPARAM) LVS_EX_SUBITEMIMAGES | LVS_EX_FULLROWSELECT);
</code></pre>
<p>die Insertfunktion:</p>
<pre><code class="language-cpp">void Show_ServerData_onLOAD(int server_id){							//Datensatz einzeln einfügen

	int			i,allplayer_id;
	LVITEM			pitem;
	SOCKADDR_IN		addr;

	addr.sin_addr.S_un.S_addr = serverinfo[server_id].ip;
	scan.num_gameservers_shown++;
	scan.num_players_max += serverinfo[server_id].max_clients;
	memset (&amp;pitem, 0, sizeof(pitem));
	serverinfo[server_id].visible = TRUE;
	pitem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE;
	pitem.iItem = server_id;									//hier eine Position angeben, dann funktioniert der Insert schneller
	pitem.iImage = 8 + user.choosen_game_current;						//Game Icon
	pitem.iSubItem = 0;
	pitem.lParam = (LPARAM)server_id;							//der iD des Datensatzes, gut wenn man weis wo es ist
	pitem.pszText = LPSTR_TEXTCALLBACK;
	SendMessage (Wnd_ServerList, LVM_INSERTITEM, 0, (LPARAM) (const LPLVITEM) &amp;pitem);
//	SendMessage (Wnd_ServerList, LVM_SORTITEMS, 0, (LPARAM)SortFunc_ServerWnd);	//sortiert einfügen, macht den Insert aber langsam, sortiers lieber am Schluss
	if (serverinfo[server_id].responding == TRUE){
		scan.num_gameservers_responding++;
		:
		:
		:
</code></pre>
<p>der Eventhandler:</p>
<pre><code class="language-cpp">case LIST_SERVERS:
		switch (((LPNMHDR) lParam)-&gt;code){
			case LVN_GETDISPINFO:
				switch (((LPNMLVDISPINFOW)lParam)-&gt;item.iSubItem){
					case 0:
						lstrcpyn ((LPTSTR)((LPNMLVDISPINFOW)lParam)-&gt;item.pszText, serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].servername, lstrlen((LPCSTR)serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].servername)+1);
						break;
					case 1:
						lstrcpyn ((LPTSTR)((LPNMLVDISPINFOW)lParam)-&gt;item.pszText, serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].mapname, lstrlen((LPCSTR)serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].mapname)+1);
						break;
					case 2:
						lstrcpyn ((LPTSTR)((LPNMLVDISPINFOW)lParam)-&gt;item.pszText, serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].modname, lstrlen((LPCSTR)serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].modname)+1);
						break;
					case 3:
						if (serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].need_password == TRUE) {
							((LPNMLVDISPINFOW)lParam)-&gt;item.mask |= LVIF_STATE;
							((LPNMLVDISPINFOW)lParam)-&gt;item.state = 0; 
							((LPNMLVDISPINFOW)lParam)-&gt;item.stateMask = 0;
							((LPNMLVDISPINFOW)lParam)-&gt;item.iImage = 7;
							sprintf (buff, &quot;%d / %d&quot;, serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].num_of_players, serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].max_clients);
							lstrcpyn ((LPTSTR)((LPNMLVDISPINFOW)lParam)-&gt;item.pszText, buff, lstrlen((LPCSTR)buff)+1);

						}else{
							((LPNMLVDISPINFOW)lParam)-&gt;item.mask = LVIF_STATE | LVIF_IMAGE | LVIF_TEXT;
							((LPNMLVDISPINFOW)lParam)-&gt;item.state = 0; 
							((LPNMLVDISPINFOW)lParam)-&gt;item.stateMask = 0;
							sprintf (buff, &quot;%d / %d&quot;, serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].num_of_players, serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].max_clients);
							lstrcpyn ((LPTSTR)((LPNMLVDISPINFOW)lParam)-&gt;item.pszText, buff, lstrlen((LPCSTR)buff)+1);
						}
						break;

					case 4:
						((LPNMLVDISPINFOW)lParam)-&gt;item.mask |= LVIF_STATE;
						((LPNMLVDISPINFOW)lParam)-&gt;item.state = 0; 
						((LPNMLVDISPINFOW)lParam)-&gt;item.stateMask = 0;
						if (serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].ping &lt;= 150) {
							((LPNMLVDISPINFOW)lParam)-&gt;item.iImage = 3;
						} else if (serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].ping &lt;= 300) {
							((LPNMLVDISPINFOW)lParam)-&gt;item.iImage = 4;
						} else if (serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].ping &lt; 9999) {
							((LPNMLVDISPINFOW)lParam)-&gt;item.iImage = 5;
						} else {
							((LPNMLVDISPINFOW)lParam)-&gt;item.iImage = 6;
						}
						sprintf (buff, &quot;%d&quot;, serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].ping);
						lstrcpyn ((LPTSTR)((LPNMLVDISPINFOW)lParam)-&gt;item.pszText, buff, lstrlen((LPCSTR)buff)+1);
						break;
					case 5:
						{
							struct in_addr	tmp;
							tmp.S_un.S_addr = serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].ip;
							sprintf (buff, &quot;%s:%d&quot;, inet_ntoa (tmp), serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].port);
							lstrcpyn ((LPTSTR)((LPNMLVDISPINFOW)lParam)-&gt;item.pszText, buff, lstrlen((LPCSTR)buff)+1);
							break;
						}
							}
						}
						break;
</code></pre>
<p>die pasende Sortierfunktion:</p>
<pre><code class="language-cpp">int CALLBACK SortFunc_ServerWnd(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort){

	switch (srt.wnd[0].actual_col){
		case 0:
			{
				char	name1[LEN_CVARVALUE];
				char	name2[LEN_CVARVALUE];
				strcpy(name1, serverinfo[(int)lParam1].servername);
				strcpy(name2, serverinfo[(int)lParam2].servername);
				if(srt.wnd[0].col[0].dir_z_a == TRUE){
					return strcmp (String_tolower(name1), String_tolower(name2));
				}else{
					return strcmp (String_tolower(name2), String_tolower(name1));
				}
			}
		case 1:
			{
				char	map1[LEN_CVARVALUE];
				char	map2[LEN_CVARVALUE];
				strcpy(map1, serverinfo[(int)lParam1].mapname);
				strcpy(map2, serverinfo[(int)lParam2].mapname);
				if(srt.wnd[0].col[1].dir_z_a == TRUE){
					return strcmp (String_tolower(map1), String_tolower(map2));
				}else{
					return strcmp (String_tolower(map2), String_tolower(map1));
				}
			}
		case 2:
			{
				char	mod1[LEN_CVARVALUE];
				char	mod2[LEN_CVARVALUE];
				strcpy(mod1, serverinfo[(int)lParam1].modname);
				strcpy(mod2, serverinfo[(int)lParam2].modname);
				if(srt.wnd[0].col[2].dir_z_a == TRUE){
					return strcmp (String_tolower(mod1), String_tolower(mod2));
				}else{
					return strcmp (String_tolower(mod2), String_tolower(mod1));
				}
			}
		case 3:
			{
				int	invert = 1;
				if(srt.wnd[0].col[3].dir_z_a == TRUE){
					invert = -1;
				}
				if (serverinfo[(int)lParam1].num_of_players &lt; serverinfo[(int)lParam2].num_of_players){
					return invert;
				}else if (serverinfo[(int)lParam1].num_of_players &gt; serverinfo[(int)lParam2].num_of_players){
					return (-1*invert);
				}else{
					return 0;
				}
			}
		case 4:
			{
				int	invert = 1;
				if(srt.wnd[0].col[4].dir_z_a == TRUE){
					invert = -1;
				}
				if (serverinfo[(int)lParam1].ping &lt; serverinfo[(int)lParam2].ping){
					return invert;
				}else if (serverinfo[(int)lParam1].ping &gt; serverinfo[(int)lParam2].ping){
					return (-1*invert);
				}else{
					return 0;
				}
			}
		case 5:
			{
				int	invert = 1;
				if(srt.wnd[0].col[5].dir_z_a == TRUE){
					invert = -1;
				}
				if ((u_int)serverinfo[(int)lParam1].ip_rev &lt; (u_int)serverinfo[(int)lParam2].ip_rev){
					return invert;
				}else if ((u_int)serverinfo[(int)lParam1].ip_rev &gt; (u_int)serverinfo[(int)lParam2].ip_rev){
					return (-1*invert);
				}else{
					if ((u_short)serverinfo[(int)lParam1].port &lt; (u_short)serverinfo[(int)lParam2].port){
						return (-1*invert);
					}else if ((u_short)serverinfo[(int)lParam1].port &gt; (u_short)serverinfo[(int)lParam2].port){
						return invert;
					}else{
						return 0;
					}
				}
			}
		default:
			return 0;
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1261506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261506</guid><dc:creator><![CDATA[Listview]]></dc:creator><pubDate>Sun, 08 Apr 2007 08:31:57 GMT</pubDate></item><item><title><![CDATA[Reply to Wie bekomm ich unterschiedlichen Text in die Spalten von ein ListView? on Sun, 08 Apr 2007 09:48:00 GMT]]></title><description><![CDATA[<blockquote>
<p>pitem.lParam = (LPARAM)server_id;<br />
pitem.pszText = LPSTR_TEXTCALLBACK;</p>
</blockquote>
<p>das die stelle wos bei mir haengt.... ich weiss einfach net wozu des gut ist.. bzw wie das funktioniert! hier wird irgendwie der text übergeben und dann irgendwo ausgewertet.. ich weiss nur nicht wie man das macht....</p>
<p>Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261538</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Sun, 08 Apr 2007 09:48:00 GMT</pubDate></item><item><title><![CDATA[Reply to Wie bekomm ich unterschiedlichen Text in die Spalten von ein ListView? on Sun, 08 Apr 2007 13:58:29 GMT]]></title><description><![CDATA[<p>schaut mal ich habe des jetzt so gelöst:</p>
<pre><code class="language-cpp">void SetWareText( HWND hLV, string index, string szWname, string szWnum, string szWcount, string szWprice, string szWdeposit ) {

    LV_ITEM lvi;

    lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM | LVIF_STATE;
    lvi.state = 0;
    lvi.stateMask = 0;
    lvi.iImage = 0;
    lvi.mask = LVIF_TEXT;

    lvi.iItem = 0;
    lvi.iSubItem = 0;
    ListView_InsertItem( hLV, &amp;lvi );

    lvi.iSubItem = 0; // spalte
    strcpy( lvi.pszText, index.c_str() );
    ListView_SetItem( hLV, &amp;lvi);
    lvi.iSubItem = 1; // spalte
    strcpy( lvi.pszText, szWname.c_str() );
    ListView_SetItem( hLV, &amp;lvi);
    lvi.iSubItem = 2; // spalte
    strcpy( lvi.pszText, szWnum.c_str() );
    ListView_SetItem( hLV, &amp;lvi);
    lvi.iSubItem = 3; // spalte
    strcpy( lvi.pszText, szWcount.c_str() );
    ListView_SetItem( hLV, &amp;lvi);
    lvi.iSubItem = 4; // spalte
    strcpy( lvi.pszText, szWprice.c_str() );
    ListView_SetItem( hLV, &amp;lvi);
    lvi.iSubItem = 5; // spalte
    strcpy( lvi.pszText, szWdeposit.c_str() );
    ListView_SetItem( hLV, &amp;lvi);

}
</code></pre>
<p>aber irgendwie steht bei szWname immer &quot;r.&quot; drin, jedes mal, wieso? eigentlich hab ich doch aber Tomate reingeschrieben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261663</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Sun, 08 Apr 2007 13:58:29 GMT</pubDate></item><item><title><![CDATA[Reply to Wie bekomm ich unterschiedlichen Text in die Spalten von ein ListView? on Sun, 08 Apr 2007 15:39:34 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">pitem.lParam = (LPARAM)server_id;
pitem.pszText = LPSTR_TEXTCALLBACK;
</code></pre>
<p>mit lParam gebe ich jedem Item eine fortlaufende Nummer, wenn du nähmlch die Zeilen sortierst, weisst du sonst nicht welcher Item gerade wo ist, brauchst du aber nicht unbedingt, LPSTR_TEXTCALLBACK bedeutet der Text der angezeigt werden soll, wird erst im eventhandler übergeben, case 0 ist erste Spalte, case 1 ist zweite Spalte etc. hier wird erst festgelegt was wo reinkommt und nicht wenn du</p>
<pre><code class="language-cpp">SendMessage (Wnd_ServerList, LVM_INSERTITEM, 0, (LPARAM) (const LPLVITEM) &amp;pitem);
</code></pre>
<p>ausführst, da wird nur gesagt, daß ein Item eingefügt wird, aber nicht welcher Text dieser in den einzelnen Zellen der eingefügten Zeile stehen soll, hierfür ist</p>
<pre><code class="language-cpp">case LIST_SERVERS:
        switch (((LPNMHDR) lParam)-&gt;code){
            case LVN_GETDISPINFO:
                switch (((LPNMLVDISPINFOW)lParam)-&gt;item.iSubItem){
                    case 0:
                        lstrcpyn ((LPTSTR)((LPNMLVDISPINFOW)lParam)-&gt;item.pszText, serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].servername, lstrlen((LPCSTR)serverinfo[((LPNMLVDISPINFOW)lParam)-&gt;item.lParam].servername)+1);
                        break;
                    case 1:
</code></pre>
<p>zuständig, war für mich auch erst mal verwirrend, da ich zum ersten mal einen Listview benutzt habe.</p>
<p>achso das kannst du so net schreiben:</p>
<pre><code class="language-cpp">lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM | LVIF_STATE;
     :
    lvi.mask = LVIF_TEXT;
</code></pre>
<p>die letzte Zeile, macht alle Vorgaben deiner ersten Zeile zunichte, ist aber an dieser Stelle eh Wurscht, das einzige was du verstehen musst, ist daß das was in den Zellen stehen soll, erst in deinem Eventhandler von dir festgelegt wird, du brauchst hierfür aber irgend eine Struktur in die du deine Texte, Zahlen etc. reinkopierst, diese Struktur muss eben wärend der ganzen Laufzeit des Programmes verfügbar sein, da sonst LPSTR_TEXTCALLBACK wirkungslos ist, der große Vorteil hiervon ist daß du den Inhalt deiner Struktur im Hintergrund ändern kannst, dann einmal den Listview neu sortierst und schon sind alle Zellen auf dem aktuellen Stand deiner Datenstruktur.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261731</guid><dc:creator><![CDATA[Listview]]></dc:creator><pubDate>Sun, 08 Apr 2007 15:39:34 GMT</pubDate></item><item><title><![CDATA[Reply to Wie bekomm ich unterschiedlichen Text in die Spalten von ein ListView? on Sun, 08 Apr 2007 19:33:53 GMT]]></title><description><![CDATA[<p>so wie ich des gemacht habe:</p>
<pre><code class="language-cpp">lvi.state = 0;
    lvi.stateMask = 0;
    lvi.iImage = 0;
    lvi.mask = LVIF_TEXT;

    lvi.iItem = 0;
    lvi.iSubItem = 0;
    ListView_InsertItem( hLV, &amp;lvi );

    lvi.iSubItem = 0; // spalte
    strcpy( lvi.pszText, index.c_str() );
    ListView_SetItem( hLV, &amp;lvi);
    lvi.iSubItem = 1; // spalte
    strcpy( lvi.pszText, szWname.c_str() );
    ListView_SetItem( hLV, &amp;lvi);
    lvi.iSubItem = 2; // spalte
    strcpy( lvi.pszText, szWnum.c_str() );
    ListView_SetItem( hLV, &amp;lvi);
    lvi.iSubItem = 3; // spalte
    strcpy( lvi.pszText, szWcount.c_str() );
    ListView_SetItem( hLV, &amp;lvi);
    lvi.iSubItem = 4; // spalte
    strcpy( lvi.pszText, szWprice.c_str() );
    ListView_SetItem( hLV, &amp;lvi);
    lvi.iSubItem = 5; // spalte
    strcpy( lvi.pszText, szWdeposit.c_str() );
    ListView_SetItem( hLV, &amp;lvi);
</code></pre>
<p>kann man das nicht auch anstatt des enventhandlers nehmen? oder ist da was dran auszu setzen?<br />
noch was... ich habe fuer jede zeile eine indexnummer in der ersten spalte stehen..also 1,2,3 ... doch irgendwie wird in des listview so einsortiert das immer das letzte item obensteht und alle nachrutschen, das will ich aber nicht... das letzte soll unten angefügt werden.... brauch ich da die mit GETCURSEL ermitelte imnumer oder gehts auch mit nen flag?</p>
<p>Gruß Tobi.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261897</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Sun, 08 Apr 2007 19:33:53 GMT</pubDate></item><item><title><![CDATA[Reply to Wie bekomm ich unterschiedlichen Text in die Spalten von ein ListView? on Mon, 09 Apr 2007 11:39:01 GMT]]></title><description><![CDATA[<p>huhu keiner ne antwort fuer mich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262187</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Mon, 09 Apr 2007 11:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to Wie bekomm ich unterschiedlichen Text in die Spalten von ein ListView? on Tue, 10 Apr 2007 05:34:12 GMT]]></title><description><![CDATA[<p>mal in meinen winapi wrapper nachschaun und fuer euch n bissl vereinfachen #gg</p>
<p>man muss erst ein item erstellen welche die item nummer als zahl bekommt, dann kann man lauter sub items erstellen welche sich nach dieser zahl richten, wenn man iItem immer 0 macht, wird es auch immer index 0 haben, dh oben sein</p>
<pre><code class="language-cpp">// Elemente hinzufuegen mit positionsangabe, zb
for(int i=0, i&lt;199, ++i)
    AddItem(i, _T(&quot;Element&quot;));
// i = index welche zeile
//
bool AddItem(const unsigned int&amp; uiPos, const std::wstring&amp; strName){
    TCHAR *str = new TCHAR[strName.length()+1];
    _tcsncpy_s(str, strName.length()+1, strName.c_str(), strName.length());
    LVITEM item;
    item.mask = LVIF_COLUMNS|LVIF_TEXT;
    item.iSubItem = 0;
    item.cColumns = 0;
    item.iItem = uiPos;
    item.pszText = str;

    bool ret = (::SendMessage(m_Handle, LVM_INSERTITEM, 0, reinterpret_cast&lt;LPARAM&gt;(&amp;item)) == -1) ? false : true;
    delete [] str;
    str = 0;
    return ret;
}
</code></pre>
<pre><code class="language-cpp">// subitem benennen
for(int i=0, i&lt;199, ++i)
    SetSubItemText(1, i, _T(&quot;Element&quot;));
// 1 = welche spalte
// i = index welche zeile
bool SetSubItemText(const unsigned int&amp; uiNumber, const unsigned int&amp; uiPos, const std::wstring&amp; strName){
    TCHAR *str = new TCHAR[strName.length()];
    _tcsncpy_s(str, strName.length()+1, strName.c_str(), strName.length());
    LVITEM item;
    item.mask = LVIF_COLUMNS|LVIF_TEXT;
    item.iSubItem = uiNumber;
    item.cColumns = 0;
    item.pszText = str;
    return (::SendMessage(m_Handle, LVM_SETITEMTEXT, uiPos, reinterpret_cast&lt;LPARAM&gt;(&amp;item))) ? true : false;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1262633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262633</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 10 Apr 2007 05:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to Wie bekomm ich unterschiedlichen Text in die Spalten von ein ListView? on Tue, 10 Apr 2007 09:11:46 GMT]]></title><description><![CDATA[<p>Ich kann dir diesen Artikel nur emfehlen <a href="http://www.codeproject.com/listctrl/listview.asp" rel="nofollow">http://www.codeproject.com/listctrl/listview.asp</a><br />
Da steht einiges drin bestimmt auch was für dich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>MfG schirrmie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262730</guid><dc:creator><![CDATA[schirrmie]]></dc:creator><pubDate>Tue, 10 Apr 2007 09:11:46 GMT</pubDate></item><item><title><![CDATA[Reply to Wie bekomm ich unterschiedlichen Text in die Spalten von ein ListView? on Tue, 10 Apr 2007 16:41:15 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20441">@Mr</a> Evil: Du mischt in Deinem Code aber UNICODE mit ANSI 'Snippets'. Also entweder vollständig kompatibel oder Du entscheidest Dich für eine Seite der Macht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263159</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Tue, 10 Apr 2007 16:41:15 GMT</pubDate></item></channel></rss>