<?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[Treeview SelectItem]]></title><description><![CDATA[<p>heiho</p>
<p>kann mir jemand verraten wie ich ein bestimmtes item in einer treeview selectieren kann ohne das eins manuell selectiert wurde ?<br />
&quot;TVM_SELECTITEM&quot;</p>
<p>die item struktur ist unbekannt</p>
<p>braeuchte auch ne idee wie ich die items benennen kann, meine erste idee war &quot;RootItem X - SubItem X&quot; usw</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170455/treeview-selectitem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 16:07:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170455.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 Jan 2007 11:20:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Treeview SelectItem on Tue, 16 Jan 2007 11:20:17 GMT]]></title><description><![CDATA[<p>heiho</p>
<p>kann mir jemand verraten wie ich ein bestimmtes item in einer treeview selectieren kann ohne das eins manuell selectiert wurde ?<br />
&quot;TVM_SELECTITEM&quot;</p>
<p>die item struktur ist unbekannt</p>
<p>braeuchte auch ne idee wie ich die items benennen kann, meine erste idee war &quot;RootItem X - SubItem X&quot; usw</p>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210644</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 16 Jan 2007 11:20:17 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Tue, 16 Jan 2007 11:46:57 GMT]]></title><description><![CDATA[<p>ich arbeite bisher so das ich items nacheinander in nem vector schieb und dann kann ich anhand der position selectieren und machen/tun</p>
<pre><code>|-0
|-1
|-2
  |-3
    |-4
      |-5
|-6
|-7
  |-8
    |-9
</code></pre>
<p>usw<br />
ne bessere loesung will mir nicht einfallen - das bloede ist allerdings das der vector recht gross werden kann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210663</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 16 Jan 2007 11:46:57 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Tue, 16 Jan 2007 12:00:23 GMT]]></title><description><![CDATA[<p>Ich verstehe jetzt nicht ganz was Du meinst.</p>
<p>TVM_SELECTITEM ruft man einfach auf und übergibt die gewünschten Flgas un das entsprechende Item.</p>
<p>Warum hast Du diesen Array?</p>
<p>Verwende doch das lparam Feld in TVITEM. Damit stellt man den Bezug zwischen Daten und Tree-Item her!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210676</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 16 Jan 2007 12:00:23 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Tue, 16 Jan 2007 12:57:14 GMT]]></title><description><![CDATA[<p>ich versteh nicht, &quot;TVITEM&quot; ist doch immer unbekannt, ich hab das hinzufuegen von items usw alles in funktionen gekapselt<br />
eine funktion um items hinzu zu fuegen usw<br />
ich hab spaeter dann nirgends informationen zu den items</p>
<p>&quot;TVM_SELECTITEM ruft man einfach auf und übergibt die gewünschten Flgas un das entsprechende Item.&quot;<br />
ich kann kein item uebergeben wenn ich zu der laufzeit kein item zu auswahl habe</p>
<p>bin grad am ueberlegen wie ich text eines items aendern kann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210734</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 16 Jan 2007 12:57:14 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Tue, 16 Jan 2007 13:52:36 GMT]]></title><description><![CDATA[<p>Wieso hast Du kein Item. Du bekommst doch mit dem Einfügen ein HTREEITEM!</p>
<p>Nun verstehe ich gar nichts mehr. Wen Du Daten in den Baum einfügst. Woher weisst Du denn weclhes Item sich auf welche Daten bezieht?</p>
<p>Das macht man doch eben über den lparam des TVITEM's.</p>
<p>Ich verstehe gerade nichts mehr! Versuche noch mal Dein problem in anderen Worten zu schildern...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210783</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 16 Jan 2007 13:52:36 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Tue, 16 Jan 2007 14:11:21 GMT]]></title><description><![CDATA[<p>jo ich versuchs mal #gg</p>
<p>also, ich hab hier alles in einzelnen funktionen, und das sollte schon so bleiben</p>
<p>ich habe diese funktion in meiner TreeView klasse:</p>
<pre><code class="language-cpp">BOOL AddItem(std::wstring ItemName, std::wstring ParentItem);
</code></pre>
<p>sodass ich immer nur so machen brauch</p>
<pre><code class="language-cpp">m_TreeView.AddItem(_T(&quot;First&quot;), TVI_ROOT);
m_TreeView.AddItem(_T(&quot;Second&quot;), TVI_ROOT);
m_TreeView.AddItem(_T(&quot;FirstSub&quot;), _T(&quot;First&quot;));
</code></pre>
<p>das &quot;Problem&quot; ist, es ist immer unbekannt was hinzugefuegt wird, und wieviel - und das HTREEITEM wird auch nicht uebergeben, ich hab m_TreeView als eigene klasse und das soll es intern verwalten<br />
dh ich brauch eine dynamische liste von &quot;HTREEITEM&quot;<br />
und das problem ist, ich muss irgendwie vergleichen koennen damit ich das parent richtig setzen kann<br />
aber aus HTREEITEM bekomm ich kein string zum vergleich /=</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210802</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 16 Jan 2007 14:11:21 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Tue, 16 Jan 2007 14:37:01 GMT]]></title><description><![CDATA[<p>ich glaub ich hab was, ich speichere einfach einen std::vector string liste wo nur die namen enthalten sind, dann kann ich damit vergleichen bis ich die positionen hab {=</p>
<pre><code class="language-cpp">class CTreeview{
private:
    std::vector&lt;HTREEITEM&gt;m_Items;
    std::vector&lt;DString&gt;m_ItemsText;
public:
    AddElement(std::wstring Name, std::wstringParent)
}:
BOOL CTreeview::AddElement(std::wstringName, std::wstringParent){
    TV_ITEM item;
    item.mask = TVIF_TEXT;
    item.pszText = (LPTSTR)Name.c_str();
    TV_INSERTSTRUCT inserter;
    inserter.item = item;
    if(!m_Items.empty()){
        for(UINT i=0; i&lt;m_ItemsText.size(); ++i){
            if(m_ItemsText[i] == Parent){
                inserter.hParent = m_Items[i];
                break;
            }
            else
                inserter.hParent = TVI_ROOT;
        }
    }
    else
        inserter.hParent = TVI_ROOT;
    inserter.hInsertAfter = TVI_SORT;
    m_Items.push_back(((HTREEITEM)::SendMessage(m_Handle, TVM_INSERTITEM, NULL, (LPARAM)(LPTVINSERTSTRUCT)&amp;inserter)));
    m_ItemsText.push_back(Name);
    return TRUE;
}
</code></pre>
<p>//returniert bisher nur true, muss noch ueberlegen wie ich das loes</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210807</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Tue, 16 Jan 2007 14:37:01 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Wed, 17 Jan 2007 12:09:28 GMT]]></title><description><![CDATA[<p>1. Bau doch nur eine Liste mit einem entsprechenden paar HTREEITEM, DString. Dann musst Du nicht zwei vectoren verwalten.<br />
2. Warum hast Du überhaupt diesen vector?</p>
<p>Ich arbeite immer nur mit der GUI. D.h. wenn jetzt was zu suchen ist durchlaufe ich den TreeView. Die daten sind doch redundant.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211325</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 17 Jan 2007 12:09:28 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Wed, 17 Jan 2007 15:09:56 GMT]]></title><description><![CDATA[<blockquote>
<p>&gt; 1. Bau doch nur eine Liste mit einem entsprechenden paar HTREEITEM, DString. Dann musst Du nicht zwei vectoren verwalten.<br />
und wie soll ich dann an die namen kommen ?</p>
</blockquote>
<blockquote>
<p>&gt; 2. Warum hast Du überhaupt diesen vector?<br />
a. ich kann alle items durchlaufen und ggf. vergleichen<br />
b. ich hab direkten zugriff auf die namen der items</p>
</blockquote>
<blockquote>
<p>&gt; Ich arbeite immer nur mit der GUI. D.h. wenn jetzt was zu suchen ist durchlaufe ich den TreeView. Die daten sind doch redundant.<br />
die gesammte liste durchlaufen ? mit allen subitems und items ?</p>
</blockquote>
<p>zb. ich sage &quot;SelectItem(std::wstring StringName)&quot;<br />
das selektiert dann das item mit diesen angegebenen namen<br />
wenn ich die GUI liste durchlaufen will muss ich ja zuerst erstes item holen, dann irgendwie den namen auslesen, dann vergleichen und wenn nichts ist das naechste item,<br />
so brauch ich nur meinen zweiten vector nach dem namen durchsuchen, und hab dann die position wo ich dann in der ersten vectorliste sagen kann welche selektiert werden kann</p>
<p>ich hab bisher diese funktionen erfolgreich implementiert:</p>
<pre><code class="language-cpp">private:
std::vector&lt;HTREEITEM&gt;m_Items;
std::vector&lt;DString&gt;m_ItemsText;
UINT GetItemNumber(std::wstring Name);
std::wstring GetItemText(HTREEITEM Item);

public:
BOOL AddElement(std::wstring Name, std::wstring Parent = _T(&quot;&quot;));
BOOL SelectItem(std::wstring Name);
void Deselect();
void Clear();
void Expand(std::wstring Name = _T(&quot;&quot;));
UINT GetSelectedItemNumber();
BOOL DeleteItem(std::wstring Item);
BOOL DeleteSelectedItem();
std::wstring GetSelectedItemText();
std::wstring GetParentItem(std::wstring Child);
std::vector&lt;DString&gt; GetChildItems(std::wstring Parent);
std::vector&lt;DString&gt; GetRootItems();
BOOL SetSelectedItemText(std::wstring Text);
BOOL SetItemText(std::wstring OldName, std::wstring NewName);
</code></pre>
<p>also komplette steuerung der items nur anhand der namen {o; und darum gings mir (wenn ein string default auf _T(&quot;&quot;) steht bedeutet das root)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211442</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 17 Jan 2007 15:09:56 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 08:43:35 GMT]]></title><description><![CDATA[<p>Ich habe mich auch mal intensiver mit dem TreeView beschäftigt und diese Frage bezüglich der Position usw. auch gefragt. Ich weis nicht ob ich deins direkt Verstanden habe. Aber ich finde die Lösung (so wie ich sie Verstanden habe) mit den Namen nicht so gut. Das ist doch nicht eindeutig! Oder? Was ist wenn du 2 mal den selben Namen hast?<br />
Da ich bei meinem TreeView genau wusste wie viele SubItems ein Parent haben konnte hab ich mir ne struct ala</p>
<pre><code>struct TreeViewPos {
int Parent;
int FirstChild;
int SecondChild;
int ThirdChild;
int FourthChild;
};
</code></pre>
<p>Naja war auch nicht die beste Lösung aber damals hat es gefunzt <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>
<blockquote>
<blockquote>
<p>&gt; 1. Bau doch nur eine Liste mit einem entsprechenden paar HTREEITEM, DString. Dann musst Du nicht zwei vectoren verwalten.<br />
und wie soll ich dann an die namen kommen ?</p>
</blockquote>
</blockquote>
<p>Wenn du ein HTREEITEM hast kannst du doch ganz einfach den Namen herausbekommen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>MfG schirrmie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211769</guid><dc:creator><![CDATA[schirrmie]]></dc:creator><pubDate>Thu, 18 Jan 2007 08:43:35 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 09:18:52 GMT]]></title><description><![CDATA[<p>Mr Evil schrieb:</p>
<blockquote>
<blockquote>
<p>&gt; 1. Bau doch nur eine Liste mit einem entsprechenden paar HTREEITEM, DString. Dann musst Du nicht zwei vectoren verwalten.<br />
und wie soll ich dann an die namen kommen ?</p>
</blockquote>
</blockquote>
<p>Ich verstehe die Frage nicht. Ob Du nun 2 Arrays hast oder einen Array mit einer struct oder einem pair, Du kommst genau gleich an den Namen!</p>
<p>Nr Evil schrieb:</p>
<blockquote>
<blockquote>
<p>&gt; 2. Warum hast Du überhaupt diesen vector?<br />
a. ich kann alle items durchlaufen und ggf. vergleichen<br />
b. ich hab direkten zugriff auf die namen der items</p>
</blockquote>
</blockquote>
<p>Und warum brauchst Du das? Entweder hat der Tree die Kontrolle oder nicht. Alles andere ist überflüssiger Verwaltungsaufwand.<br />
Ich Speichere meine Daten im Baum unter einem Text. Einen entsprechenden Zeiger auf weitere Daten oder eine ID kommen in das lparam Feld des Tree-Items.</p>
<p>Wenn ich einen Konten in meinem Baum Suche, dann traversiere ich den Baum.</p>
<p>Nr Evil schrieb:</p>
<blockquote>
<p>zb. ich sage &quot;SelectItem(std::wstring StringName)&quot;<br />
das selektiert dann das item mit diesen angegebenen namen<br />
wenn ich die GUI liste durchlaufen will muss ich ja zuerst erstes item holen, dann irgendwie den namen auslesen, dann vergleichen und wenn nichts ist das naechste item,<br />
so brauch ich nur meinen zweiten vector nach dem namen durchsuchen, und hab dann die position wo ich dann in der ersten vectorliste sagen kann welche selektiert werden kann</p>
</blockquote>
<p>Dafür hast Du doppelte Datenhaltung. Wenn Du jetzt mit einem Drag&amp;Drop anfängst, oder mit Sortieren der Unterknoten oder sonstigen netten Spielereien kannst Du Dir den vector schenken.</p>
<p>Als Grundsatz habe ich mir angewöhnt:<br />
1. Daten gibt es nur an einer Stelle.<br />
2. Alles was die Daten representiert hat einen Verweis auf diese Daten.<br />
3. Eine 1:1 Verknüpfung von GUI (sprich Darstellung) zur Datenhaltung ist möglichst zu vermeiden, da dies nur Probleme mit Sortieren Drag&amp;Drop etc bringt.</p>
<p>Just my 2 cents!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211802</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 18 Jan 2007 09:18:52 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 13:05:35 GMT]]></title><description><![CDATA[<p>und wie soll ich aus nem HTREEITEM den namen bekommen ?<br />
ich hab google abgestoebert, auch die MSDN rauf und runter - nirgends find ich informationen wie ich den namen eines items aus TREEITEM auslesen kann - das ist ja die ganze zeit schon die problematik</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1211975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1211975</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Thu, 18 Jan 2007 13:05:35 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 14:29:12 GMT]]></title><description><![CDATA[<p>Na wenns weiter nix ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Mit nem HTREEITEM kannst du an sich alles machen wie mit nem HITEM.</p>
<pre><code>void TreeView::GetItem(HTREEITEM htitem, TVITEM *tvi)
{
	char Buffer[2001] = &quot;&quot;;

	//Hole den Namen des TreeviewItem's
	tvi-&gt;mask = TVIF_HANDLE | TVIF_TEXT;
	tvi-&gt;hItem = htitem;
	tvi-&gt;pszText = Buffer; 
	tvi-&gt;cchTextMax = 2000; 
	TreeView_GetItem(Hwnd, tvi);
}
char * TreeView::GetItemText(HTREEITEM htitem)
{
	TVITEM Tvi;
	char Buffer[5000] = &quot;&quot;;
	GetItem(htitem, &amp;Tvi);
	Tvi.mask = TVIF_TEXT;
	Tvi.pszText = Buffer;
	TreeView_GetItem(Hwnd, &amp;Tvi);
	return Buffer;
}
</code></pre>
<p>MfG schirrmie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212070</guid><dc:creator><![CDATA[schirrmie]]></dc:creator><pubDate>Thu, 18 Jan 2007 14:29:12 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 15:16:26 GMT]]></title><description><![CDATA[<p>vor ein paar minuten hatte ichs endlich hinbekommen</p>
<p>std::wstring CTreeview::GetItemText(HTREEITEM Item){<br />
TVITEM item;<br />
item.hItem = Item;<br />
item.mask = TVIF_TEXT;<br />
std::wstring str;<br />
item.pszText = (LPTSTR)str.c_str();<br />
item.cchTextMax = (int)str.capacity();<br />
::SendMessage(m_Handle, TVM_GETITEM, NULL, (LPARAM)&amp;item);<br />
return str.c_str();<br />
}</p>
<p>ps. mit macros arbeite ich nicht, makros doof und boese #gg</p>
<p>bin grad dabei meine methoden neu zu implementieren - also alles neu aufzubauen ohne die listen - nicht so einfach den gesammten baum zu durchsuchen - und wie ich doppelte namen handel weiss ich noch nicht {wenn ich sag add item und den string das parent angeb, das ich weiss zu welchem item es added werden soll}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212110</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Thu, 18 Jan 2007 15:16:26 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 15:37:52 GMT]]></title><description><![CDATA[<p>Ist das mit den Makros auf mein Code bezogen? Da sind keine Makros drinne.<br />
Ja das mein ich ja mit den Namen das ist ne schlechte Implementierung weil du nix eindeutiges hast. Mach es wie einer meiner Vorredner gesagt hat und nimm das LPARAM vom ITEM da kannst ja soviele Informationen reinpacken wie du willst.</p>
<p>MfG schirrmie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212123</guid><dc:creator><![CDATA[schirrmie]]></dc:creator><pubDate>Thu, 18 Jan 2007 15:37:52 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 15:39:10 GMT]]></title><description><![CDATA[<p>Doch TreeView_GetItem ist ein Makro!</p>
<p>Allerdings kann ich diese Meinung nicht teilen. Diese Art Makros helfen immens beim korrekten Umgang mit den entsprechenden Fensterklassen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212125</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 18 Jan 2007 15:39:10 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 15:52:34 GMT]]></title><description><![CDATA[<p>Achso stimmt ja daran hab ich garnicht gedacht. Naja ob da nun nen SendMessage oder nen Makro steht ist mir Relativ. Ich find die Makros nur übersichtlicher beim lesen. Beim Überfliegen erkennt man halt sofort was gemacht wird was bei SendMessage meist nicht sooo schnell der Fall ist aber naja das ist geschmackssache.</p>
<p>MfG schirrmie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212134</guid><dc:creator><![CDATA[schirrmie]]></dc:creator><pubDate>Thu, 18 Jan 2007 15:52:34 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 17:01:36 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Allerdings kann ich diese Meinung nicht teilen. Diese Art Makros helfen immens beim korrekten Umgang mit den entsprechenden Fensterklassen!</p>
</blockquote>
<p>das ist bei mir ein vorurteil wo ich keine lust habe das abzulegen - hast schon recht aber egal #gg</p>
<p>das mit den namen - mein ziel ist ja das man das tree nur mit namen handeln kann, das man spaeter beim benutzen die id oder soetwas nicht kennen braucht</p>
<p>wie ich &quot;AddItem(std::wstring Name, std::wstring Parent)&quot; implementiere sobald ein name mehrmals auftaucht weiss ich noch nicht, denk da schon den ganzen tag drueber nach</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212177</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Thu, 18 Jan 2007 17:01:36 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 17:30:29 GMT]]></title><description><![CDATA[<p>Mr Evil schrieb:</p>
<blockquote>
<p>ps. mit macros arbeite ich nicht, makros doof und boese #gg</p>
</blockquote>
<p>Kann ich unterstützen, ABER wenn Du schon keine Makros nutzt (wie das in C++ ja üblich ist), dann nimm doch auch C++ Casts und keine C - Casts <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212188</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 18 Jan 2007 17:30:29 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 17:46:30 GMT]]></title><description><![CDATA[<p>ja ich weiss, bloede angewohnheit - komme wie so viele aus der c schiene und bin da vorbelastet</p>
<p>bei den casts<br />
reinterpret_cast&lt;&gt;()<br />
dynamic_cast&lt;&gt;()<br />
static_cast&lt;&gt;()</p>
<p>und welche es noch gibt {?} blick ich zZt nicht ganz durch welches wann am besten zu gebrauchen ist</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212197</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Thu, 18 Jan 2007 17:46:30 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 18:08:49 GMT]]></title><description><![CDATA[<p>Ich denke ohne eine Entsprechende Id oder so wirst du nicht weit kommen oder du legst fest das ein Name nur einmal vorkommen darf aber ka was du vor hast und es so gehen kann?<br />
Versteh aber nicht ganz dein Problem mit den Namen. Wenn ein User in nem TreeView später was selektiert oder so da brauchst du doch keine Namen oder so dann hast doch das Item also ich versteh dein Problem nicht wirklich. Was hast du denn mit dem TreeView vor das es Nur über Namen ansprechbar sein soll? Also ich hab bis jetzt immer mit der Maus draufgeklickt oder mit der Tastatur navigiert und nich Probleme gehabt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>MfG schirrmie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212211</guid><dc:creator><![CDATA[schirrmie]]></dc:creator><pubDate>Thu, 18 Jan 2007 18:08:49 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 18:17:58 GMT]]></title><description><![CDATA[<p>es geht darum das man durch den code auch items hinzufuegen kann ohne das man vorher was selectieren muss oder aehnliches</p>
<p>ich hab mir das nu so gedacht das man bei add noch die id uebergibt und wenn man es nicht weiss kann man holen, mit der bedingung das wenn man die id holt immer das erste vorkommende item benutzt wird - also</p>
<p>BOOL AddItem(std::wstring Name, int ParentId=-1);<br />
.<br />
.<br />
.</p>
<p>// add auf root<br />
BOOL ret = m_TreeView.AddItem(_T(&quot;First&quot;));<br />
subitem auf &quot;First&quot;<br />
ret = m_TreeView.AddItem(_T(&quot;Next&quot;), 1);<br />
wenn man die ID des objektes nicht kennt<br />
ret = m_TreeView.AddItem(_T(&quot;Next&quot;), m_TreeView.GetItemId(_T(&quot;First&quot;)));</p>
<p>ob die objekt id und parent id uebergeben wird, oder nur das parent, da muss ich noch ueberlegen wie ich das loes, ich denk mir das ich wahrscheinlich beides uebergeben lass also</p>
<p>BOOL AddItem(std::wstring Name, UINT ItemId, int ParentId=-1);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212217</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Thu, 18 Jan 2007 18:17:58 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 18:20:29 GMT]]></title><description><![CDATA[<p>Also ähm, hab mal ne kleine Übersicht gemacht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> :</p>
<pre><code>[u][b]static_cast&lt;&gt;():[/b][/u]
1. Type  &lt;&lt; static_cast&lt;Type&gt;(OtherType);   // einfacher Typ-Cast
2. Type* &lt;&lt; static_cast&lt;Type*&gt;(OtherType*); // nur wenn sicher, sonst dynamic_cast

[u][b]reinterpret_cast&lt;&gt;():[/b][/u]
1. Type  &lt;&lt; static_cast&lt;Type&gt;(OtherType);  // aber dann lieber static_cast
2. Type* &lt;&lt; static_cast&lt;Type*&gt;(OtherType); // sollte man aber vermeiden

[u][b]dynamic_cast&lt;&gt;():[/b][/u]
Prüft, ob eine Konvertierung gültig ist. Beispiel:
class CBase { public: int GetWas(); /* ... */ };
class CDerived : CBase { public: int GetNochWas(); /* ... */ };
CBase* pbManage = new CDerived(...);
int iResult;
if(dynamic_cast&lt;CDerived*&gt;(pbManage))
  iResult = dynamic_cast&lt;CDerived*&gt;(pbManage)-&gt;GetNochWas();

[u][b]const_cast&lt;&gt;():[/b][/u]
Damit lassen sich die Schlüsselworte [i]const[/i], oder [i]volatile[/i] (und [i]__unaligned[/i])(weg-)casten. Sowas sollte man aber gründsätzlich vermeiden (bz. nur durchführen wenn es sicher ist)!
</code></pre>
<p>Hier hast Du nochmal ne genauere Übersicht mit Erklärungen und Beispielen:<br />
<a href="http://msdn2.microsoft.com/en-us/library/5f6c9f8h.aspx" rel="nofollow">Casting Operators</a> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1212220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212220</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Thu, 18 Jan 2007 18:20:29 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Thu, 18 Jan 2007 19:00:24 GMT]]></title><description><![CDATA[<p>hei vielen dank, sehr nett {=</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212237</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Thu, 18 Jan 2007 19:00:24 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Fri, 19 Jan 2007 07:22:53 GMT]]></title><description><![CDATA[<p>jetzt hab ich erstmal das problem</p>
<pre><code class="language-cpp">HTREEITEM CTreeview::GetItem(UINT id){
    TVITEM item;
    item.mask = TVIF_HANDLE|TVIF_TEXT|TVIF_PARAM;
    item.lParam = id;
    ::SendMessage(m_Handle, TVM_GETITEM, NULL, reinterpret_cast&lt;LPARAM&gt;(static_cast&lt;TV_ITEM *&gt;(&amp;item)));
    return NULL;
}
</code></pre>
<p>wie komme ich an das HTREEITEM wenn ich nur die id (lParam) habe,</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212423</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Fri, 19 Jan 2007 07:22:53 GMT</pubDate></item><item><title><![CDATA[Reply to Treeview SelectItem on Fri, 19 Jan 2007 12:05:32 GMT]]></title><description><![CDATA[<p>Ich denke da bleibt dir nichts anderes übrig als alle Items durchzugehen und zu Prüfen ob sie die gesuchte Id hat. Wenn ja hast du ja so gut wie das HTREEITEM.</p>
<p>MfG schirrmie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1212594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1212594</guid><dc:creator><![CDATA[schirrmie]]></dc:creator><pubDate>Fri, 19 Jan 2007 12:05:32 GMT</pubDate></item></channel></rss>