ページ 11

ツリービュー展開メッセージ

Posted: 2012年11月12日(月) 18:52
by オカピーα
Win32APIでツリービューマスターを夢見るオカピーです。
現在ツリービューをつくっているのですが、項目が展開されるときは何のメッセージがくるのでしょう?
調べてみると「TVIS_EXPANDEDONCE」メッセージがあったのですが
どうやらツリービューの左の「+」ボタンを押したときはTVIS_EXPANDEDONCEメッセージはこないようです。
(通常のダブルクリック展開では来ました)

左の「+」ボタンクリックとダブルクリック展開の両方に対応するにはどうしたらいいのでしょうか?
どなたか教えてください。

Re: ツリービュー展開メッセージ

Posted: 2012年11月12日(月) 21:14
by YuO
MSDNは読んだ方が良いですよ。

TVIS_EXPANDONCEはメッセージではなく状態フラグです。
その名の通り,「少なくとも一度開かれたことがある」ことを意味します。
# 実際には,閉じられるとこのフラグは落ちるようですが。

Tree View通知メッセージ一覧を見て調べれば,TVN_ITEMEXPANDINGTVN_ITEMEXPANDEDに辿り着きます。
Common Controlsの通知はWM_NOTIFYメッセージとして通知されますから,LPARAMの値をNMHDR *にキャストして,codeの値を調べることになります。
# 最終的にはNMTREEVIEW *にキャストすることになります。

Re: ツリービュー展開メッセージ

Posted: 2012年12月06日(木) 18:52
by オカピーα
返信ありがとうございます。
取り合えずTVN_SINGLEEXPANDというメッセージを見つけたので
やってみたところ出来ました。
お忙しいなかありがとうございました。