チェックボックスの表示ツリービューのアイテムにチェックボックスを表示するには、ウインドウスタイルにTVS_CHECKBOXESを指定するようにします。アイテムがチェックされているかを確認するには、TreeView_GetCheckStateを呼び出します。hItem);hwndTVは、ツリービューのウインドウハンドルを指定します。hItemは、チェックを確認したいアイテムのハンドルを指定します。0の場合はアイテムがチェックされていないことを意味します。今回のプログラムは、ツリービューのアイテムにチェックボックスを表示します。アイテムがチェックされた場合、そのアイテムの名前をウインドウタイトルに表示します。NM_CLICKを処理することになります。チェックボックスがクリックされたことを特定できます。ptには現在のカーソル座標を指定することになります。WM_CHECKSTATECHANGEという独自のメッセージをポストして、そこでチェックを確認しているのには理由があります。それは、NM_CLICKの時点では内部的にチェックの状態が変化していないからです。NM_CLICKでTreeView_GetCheckStateを呼び出しても正しい結果は得られないことになります。これでは正しい結果が得られないことが分かります。これも上手くいきません。アイテムの選択は、クリック以外にSpaceキーの押下で行われることもあります。このときにNMTVKEYDOWN.wVKeyがVK_SPACEであるかを確認します。独自のメッセージをポストすることになります。現在選択されているアイテムを取得するTreeView_GetSelectionを呼び出しています。