たびたびすみません。
ひろと申します。
CTreeCtrlのアイテムを右クリックしたときに、
ポップアップメニューを出そうと思います。
メニューを出す時には、そのアイテムを選択状態にしようと
思うのですが、SelectItemを使用して選択状態にすると
そのアイテムが子アイテムを持っていると拡張されてしまいます。
ポップアップメニューを出すときは、
拡張したくないと考えています。
別の手段としてSelectDropTargetも試してみたのですが、
選択されたように見えても、Drop用のAPIのため
SelectDropTarget(NULL)を使用しないと他のアイテムの
選択ができなくなってしまいます。
また、SelectDropTarget(NULL)を使用すると、
ポップアップメニューが消えた後で元に選択されていたアイテムに
選択状態が戻ってしまいます。
環境は Win2k、VC++6.0、MFC4.2 です。
よろしくお願い致します。
ウィンドウスタイルにTVS_SINGLEEXPANDが指定されてないでしょうか?
右クリックの時だけ拡張されちゃうんでしょうか。
ひろぴー様、たびたびで申し訳ございません。
TVS_SINGLEEXPANDは設定しています。
デフォルト動作だと、アイテムを右クリックされたときに、
すぐに直前に選択されていたアイテムに選択状態が戻ってしまいます。
子アイテムを持つ親アイテムを右クリックしたときに
SelectItemをコールするようにすると拡張されてしまいます。
子アイテムを持つアイテムを
拡張されずに選択状態にだけする方法はありますでしょうか?
よろしくお願い致します。
SelectItemする前にウィンドウスタイルからTVS_SINGLEEXPANDを外してSelectItemしてから
TVS_SINGLEEXPANDを付けたらどうでしょうか?
こんな方法ズルですか?(ToT)
↑※試してません
ひろぴー様、その方法でやってみたらうまくできました。
何度もありがとうございました。