<?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[CListctrl Welche Zeile beim Klick in zweite Spalte]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe in meinem Dialog ein ListControl. Dieses wird gefüllt mit mehreren Zeilen und hat zwei Spalten.</p>
<p>Beim Klick in die erste Spalte bekomme ich mit folgenden Code die Zeile zurück:</p>
<p>Code:<br />
POSITION pos = m_ListDaten.GetFirstSelectedItemPosition();</p>
<p>Klicke ich aber in der gleichen Zeile aber in die zweite Spalte ist pos=NULL.</p>
<p>Im Grunde soll beim Klick in die zweite Spalte genau das gleiche passieren wie beim Klick in die erste Spalte.</p>
<p>Ebro</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/146236/clistctrl-welche-zeile-beim-klick-in-zweite-spalte</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 13:54:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/146236.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 05 May 2006 14:44:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CListctrl Welche Zeile beim Klick in zweite Spalte on Fri, 05 May 2006 14:44:56 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe in meinem Dialog ein ListControl. Dieses wird gefüllt mit mehreren Zeilen und hat zwei Spalten.</p>
<p>Beim Klick in die erste Spalte bekomme ich mit folgenden Code die Zeile zurück:</p>
<p>Code:<br />
POSITION pos = m_ListDaten.GetFirstSelectedItemPosition();</p>
<p>Klicke ich aber in der gleichen Zeile aber in die zweite Spalte ist pos=NULL.</p>
<p>Im Grunde soll beim Klick in die zweite Spalte genau das gleiche passieren wie beim Klick in die erste Spalte.</p>
<p>Ebro</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1051610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1051610</guid><dc:creator><![CDATA[ebro]]></dc:creator><pubDate>Fri, 05 May 2006 14:44:56 GMT</pubDate></item><item><title><![CDATA[Reply to CListctrl Welche Zeile beim Klick in zweite Spalte on Sat, 06 May 2006 16:09:58 GMT]]></title><description><![CDATA[<p>Ich nehme mal an das auch die zweite Spalte des ListControls nicht selektiert wird, sondern sich nur die erste Spalte anwählen lässt. Du musst hier den erweiterten Stil LVS_EX_FULLROWSELECT für das ListCtrl setzen. In etwa so:</p>
<pre><code class="language-cpp">m_listCtrl.SendMessage( LVM_SETEXTENDEDLISTVIEWSTYLE, (WPARAM)LVS_EX_FULLROWSELECT , (WPARAM)LVS_EX_FULLROWSELECT );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1052131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052131</guid><dc:creator><![CDATA[tvdog]]></dc:creator><pubDate>Sat, 06 May 2006 16:09:58 GMT</pubDate></item><item><title><![CDATA[Reply to CListctrl Welche Zeile beim Klick in zweite Spalte on Sat, 06 May 2006 17:17:08 GMT]]></title><description><![CDATA[<p>Hallo,<br />
danke erstmal für den Tipp. Es ist besser aber auch merkwürdiger geworden.<br />
Bis dato hatte ich nur in OnInitDialog folgenden Code drin:</p>
<pre><code>m_liste.SetExtendedStyle(LVS_EX_FULLROWSELECT);
</code></pre>
<p>Damit klappte es ja nicht. Den hab ich jetzt durch deinen Code ersetzt:</p>
<pre><code>m_liste.SendMessage( LVM_SETEXTENDEDLISTVIEWSTYLE, (WPARAM)LVS_EX_FULLROWSELECT , (WPARAM)LVS_EX_FULLROWSELECT );
</code></pre>
<p>Das gleiche habe ich in der Funktion OnClickList3 nochmal eingefügt.<br />
Jetzt passiert folgendes:<br />
1.Beim aller ersten Klick in die erste Spalte wird auch nur die erste Spalte markiert und pos liefert die Zeile<br />
2.Beim aller ersten Klick in die zweite Spalte wird gar nichts markiert und pos liefert NULL<br />
3.Bei allen weiteren Klicks egal ob Spalte eins oder zwei wird wie gewollt die ganze Zeile markiert und pos liefert die entsprechende Zeile.</p>
<p>Was kann da noch falsch sein, dass das nur beim ersten Klick nicht klappt?</p>
<p>Ebro</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052157</guid><dc:creator><![CDATA[ebro]]></dc:creator><pubDate>Sat, 06 May 2006 17:17:08 GMT</pubDate></item><item><title><![CDATA[Reply to CListctrl Welche Zeile beim Klick in zweite Spalte on Sat, 06 May 2006 18:55:05 GMT]]></title><description><![CDATA[<p>Ehm also ich habe das so gemacht bei OnInitDialog:</p>
<pre><code class="language-cpp">m_list.SetExtendedStyle(GetExtendedStyle() | LVS_EX_FULLROWSELECT);
</code></pre>
<p>Und das geht wunderbar! Ich weiss jetzt nicht und bin auch zu müde es nachzulesen, aber je nach dem müssen halt wohl gewisse Einstellungen mitgeliefert werden, damit das Fullrowselect funktioniert. Durch das Holen der aktuellen Einstellungen und einfach das Hinzufügen, wird halt nur hinzugefügt und nichts gelöscht.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052209</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 06 May 2006 18:55:05 GMT</pubDate></item><item><title><![CDATA[Reply to CListctrl Welche Zeile beim Klick in zweite Spalte on Sun, 07 May 2006 00:23:39 GMT]]></title><description><![CDATA[<p>Ich denke dass es keine gute Idee ist, die erweiterten Stile während des Verarbeitens der Click-Nachricht (NM_CLICK) zu setzen. Wenn ich die erw. Stile des ListCtrl in der OnInitDialog wie beschrieben ändere funktioniert das ausgezeichnet. Egal ob es mit SendMessage( ... ) oder SetExtendedStyle erfolgt. Das Problem scheint woanders zu liegen.</p>
<p>Kannst du nicht mehr Infos posten, damit man die Umstände, die zum beschriebenen Verhalten führen, sieht ?</p>
<p>Wie schaut denn deine OnInitDialog aus und deine MessageMap ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052364</guid><dc:creator><![CDATA[tvdog]]></dc:creator><pubDate>Sun, 07 May 2006 00:23:39 GMT</pubDate></item><item><title><![CDATA[Reply to CListctrl Welche Zeile beim Klick in zweite Spalte on Sun, 07 May 2006 07:33:39 GMT]]></title><description><![CDATA[<p>Moin,<br />
danke an alle, es funzt jetzt!!!<br />
Ich habs jetzt so gemacht. Aus OnClickList3() hab ich FULLROWSELECT rausgenommen. OnInitDialog hab ich so geändert:</p>
<pre><code>m_liste.SetExtendedStyle(LVS_EX_GRIDLINES);
m_liste.SetExtendedStyle(LVA_ALIGNLEFT);
m_liste.SetExtendedStyle(m_liste.GetExtendedStyle() | LVS_EX_FULLROWSELECT);
</code></pre>
<p>Schönen sonnigen Sonntag.</p>
<p>Ebro</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1052398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1052398</guid><dc:creator><![CDATA[ebro]]></dc:creator><pubDate>Sun, 07 May 2006 07:33:39 GMT</pubDate></item><item><title><![CDATA[Reply to CListctrl Welche Zeile beim Klick in zweite Spalte on Mon, 08 May 2006 11:17:31 GMT]]></title><description><![CDATA[<p>Dir ist aber klar, dass dann LVS_EX_GRIDLINES nicht vorhanden sein wird?<br />
Ich glaube du solltest mal was zu Flags lesen.</p>
<p>Hmmm hab nichts vernünftiges als Link gefunden, so probier ich mal selber was dazuzuschreiben ^^</p>
<p>Ein Beispiel:<br />
Flag1 ist Bitweise so definiert: 0001<br />
Flag2 ist Bitweise so definiert: 0010<br />
Flag3 ist Bitweise so definiert: 0100<br />
Flag4 ist Bitweise so definiert: 1000</p>
<p>Flag1 | Flag3 = 0101<br />
Flag2 | Flag4 = 1010<br />
Flag1 | Flag2 = 0011</p>
<p>usw.</p>
<p>Mit SetExtendedStyle setzt du diese Flags fest. Und zwar ersetzt du dabei den alten Wert durch den Wert, den du der Funktion übergibst.<br />
Bei deinem Code den du reingeschrieben hast:</p>
<blockquote>
<p>m_liste.SetExtendedStyle(LVS_EX_GRIDLINES);<br />
m_liste.SetExtendedStyle(LVA_ALIGNLEFT);<br />
m_liste.SetExtendedStyle(m_liste.GetExtendedStyle() | LVS_EX_FULLROWSELECT);</p>
</blockquote>
<p>wird am Anfang alles ersetzt durch LVS_EX_GRIDLINES. Dann wird LVS_EX_GRIDLINES durch LVA_ALIGNLEFT ersetzt. Und dann wird LVA_ALIGNLEFT geholt und LVS_EX_FULLROWSELECT dazu gesetzt und das ganze ersetzt dann LVA_ALIGNLEFT. So hast du am Ende in deiner Liste ein Extended Style LVA_ALIGNLEFT und LVS_EX_FULLROWSELECT.</p>
<p>Und jetzt kommt noch der Hammer. LVA_ALIGNLEFT ist kein Flag des Extended Styles. Sieh mal in der MSDN nach welche Flags für den Extended Style zuständig sind. Das LVA_ALIGNLEFT ist ein normales Style Flag.</p>
<p>Hmmm bei uns in der Schweiz würde das heissen: &quot;EINS, SETZEN!&quot; (wobei man beachten muss das in der Schweiz die eins = sehr schlecht ist und 6 = sehr gut) <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>
<p>Ich hoffe ich konnte ein wenig weiter helfen.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1053283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053283</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 08 May 2006 11:17:31 GMT</pubDate></item><item><title><![CDATA[Reply to CListctrl Welche Zeile beim Klick in zweite Spalte on Mon, 08 May 2006 11:57:39 GMT]]></title><description><![CDATA[<p>Wieso nimmst du überhaupt mehrere SetExtendedStyle-Aufrufe hintereinander? Du kannst doch gleich eine OR-Kombination aller benötigten Flags mit einem Schlag setzen:</p>
<pre><code class="language-cpp">m_liste.SetStyle(LVA_ALIGNLEFT /* evt. |... */);
m_liste.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1053317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1053317</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 08 May 2006 11:57:39 GMT</pubDate></item><item><title><![CDATA[Reply to CListctrl Welche Zeile beim Klick in zweite Spalte on Wed, 10 May 2006 08:16:23 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ihr habt sicher alle recht. Ich bin eben schon froh wenn das stimmt was hinten rauskommt. Ich erhebe gar nicht den Anspruch auf feinen Code. Es ist eben nur ein Hobby von vielen.</p>
<p>Aber die Gridlines sind trotzdem da, egal wie sie da reingekommen sind.</p>
<p>Danke für eure Tipps. Ich werd das natürlich in meinen künftigen updates berücksichtigen.</p>
<p>Ebro</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1054626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1054626</guid><dc:creator><![CDATA[ebro]]></dc:creator><pubDate>Wed, 10 May 2006 08:16:23 GMT</pubDate></item></channel></rss>