<?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[WM_INITDIALOG und TreeView]]></title><description><![CDATA[<p>Hallo Leute,<br />
mmmhh, schon wieder ein TreeView-Problem von mir... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Ich habe in meinem Dialog ein TreeView. Zum Initialisieren fange ich die WM_INITDIALOG Nachricht ab. Dann werden schonmal ein paar TreeView-Items eingefügt. Das funktioniert auch. Allerdings wollte ich mit folgendem Code aus der MSDN einige TreeView-Items mit einem gesetzten Häkchen versehen:<br />
( Diesmal übergeb' ich auch das richtige Handle..., Siehe meine Frage gestern <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>
<pre><code class="language-cpp">BOOL TreeView_SetCheckState( HWND hwndTreeView, HTREEITEM hItem, BOOL fCheck )
{
    TVITEM tvItem;
    tvItem.mask = TVIF_HANDLE | TVIF_STATE;
    tvItem.hItem = hItem;
    tvItem.stateMask = TVIS_STATEIMAGEMASK;

    // Since state images are one-based, 1 in this macro turns the check off,          
    // and 2 turns it on. 
    tvItem.state = INDEXTOSTATEIMAGEMASK( ( fCheck ? 2 : 1 ) );
    return TreeView_SetItem( hwndTreeView, &amp;tvItem );
}
</code></pre>
<p>Die Methode gibt zwar TRUE zurück, aber ein Häkchen seh ich nicht.<br />
Nun hab ich mit TreeView_GetImageList mir die State-ImageList des TreeViews geholt und die enthaltenen Bilder gezählt über ImageList_GetImageCount. Dabei kam 0 heraus, was mich zu der Schlussfolgerung bringt, dass das TreeView noch nicht richtig initialisiert ist, wenn ich die Häkchen setzen will.<br />
Meine Frage: Wo soll ich die Häkchen dann setzen? Oder liegt es doch an etwas anderem?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/93208/wm_initdialog-und-treeview</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 02:30:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/93208.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 27 Nov 2004 09:12:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WM_INITDIALOG und TreeView on Sat, 27 Nov 2004 09:12:51 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
mmmhh, schon wieder ein TreeView-Problem von mir... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Ich habe in meinem Dialog ein TreeView. Zum Initialisieren fange ich die WM_INITDIALOG Nachricht ab. Dann werden schonmal ein paar TreeView-Items eingefügt. Das funktioniert auch. Allerdings wollte ich mit folgendem Code aus der MSDN einige TreeView-Items mit einem gesetzten Häkchen versehen:<br />
( Diesmal übergeb' ich auch das richtige Handle..., Siehe meine Frage gestern <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>
<pre><code class="language-cpp">BOOL TreeView_SetCheckState( HWND hwndTreeView, HTREEITEM hItem, BOOL fCheck )
{
    TVITEM tvItem;
    tvItem.mask = TVIF_HANDLE | TVIF_STATE;
    tvItem.hItem = hItem;
    tvItem.stateMask = TVIS_STATEIMAGEMASK;

    // Since state images are one-based, 1 in this macro turns the check off,          
    // and 2 turns it on. 
    tvItem.state = INDEXTOSTATEIMAGEMASK( ( fCheck ? 2 : 1 ) );
    return TreeView_SetItem( hwndTreeView, &amp;tvItem );
}
</code></pre>
<p>Die Methode gibt zwar TRUE zurück, aber ein Häkchen seh ich nicht.<br />
Nun hab ich mit TreeView_GetImageList mir die State-ImageList des TreeViews geholt und die enthaltenen Bilder gezählt über ImageList_GetImageCount. Dabei kam 0 heraus, was mich zu der Schlussfolgerung bringt, dass das TreeView noch nicht richtig initialisiert ist, wenn ich die Häkchen setzen will.<br />
Meine Frage: Wo soll ich die Häkchen dann setzen? Oder liegt es doch an etwas anderem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/660351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/660351</guid><dc:creator><![CDATA[Cosmixx]]></dc:creator><pubDate>Sat, 27 Nov 2004 09:12:51 GMT</pubDate></item><item><title><![CDATA[Reply to WM_INITDIALOG und TreeView on Sat, 27 Nov 2004 18:45:31 GMT]]></title><description><![CDATA[<p>hast du den style TVS_CHECKBOXES beim erzeugen des treeviews gesetzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/660714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/660714</guid><dc:creator><![CDATA[esskar]]></dc:creator><pubDate>Sat, 27 Nov 2004 18:45:31 GMT</pubDate></item><item><title><![CDATA[Reply to WM_INITDIALOG und TreeView on Sun, 28 Nov 2004 09:08:41 GMT]]></title><description><![CDATA[<p>Hallo esskar,<br />
ich hab den zugehörigen Dialog im Ressourceneditor erstellt. Und bei den TreeView Eigenschaften hab ich unter Eigenschaften das Häkchen bei &quot;Kontrollkästchen&quot; gemacht. Also geh ich davon aus, dass der Style gesetzt ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/660919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/660919</guid><dc:creator><![CDATA[Cosmixx]]></dc:creator><pubDate>Sun, 28 Nov 2004 09:08:41 GMT</pubDate></item><item><title><![CDATA[Reply to WM_INITDIALOG und TreeView on Sun, 28 Nov 2004 11:47:43 GMT]]></title><description><![CDATA[<p>schau mal in der commctrl.h ist schon eine Funktion</p>
<pre><code>UINT TreeView_SetCheckState(
    HWND hwndTV,
    HTREEITEM hItem,
    BOOL fCheck
);
</code></pre>
<p>deklariert. Vielleicht gehts mit der.<br />
Aber eigentlich sollte es funzen.<br />
Ruf mal deine Funktion zunächst mit TreeView_GetRoot als HTREEITEM auf;<br />
vielleicht übergibst du doch das falsche Handle oder vielleicht sogar das flasche HWND</p>
]]></description><link>https://www.c-plusplus.net/forum/post/660994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/660994</guid><dc:creator><![CDATA[esskar]]></dc:creator><pubDate>Sun, 28 Nov 2004 11:47:43 GMT</pubDate></item><item><title><![CDATA[Reply to WM_INITDIALOG und TreeView on Mon, 29 Nov 2004 08:35:43 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Also ich hab dem TreeView jetzt eine normale ImageList hinzugefügt und seitdem gehts auch mit den Häkchen setzen. Hab nichts weiter verändert! Ist trotzdem komisch. State-ImageList und normale ImageList haben doch eigentlich nichts miteinander zu tun.</p>
<p>Bis dann<br />
Cosmixx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/661556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/661556</guid><dc:creator><![CDATA[Cosmixx]]></dc:creator><pubDate>Mon, 29 Nov 2004 08:35:43 GMT</pubDate></item></channel></rss>