CTreeCtrlのポップアップメニュー起動時について – プログラミング – Home

CTreeCtrlのポップアップメニュ...
 
通知
すべてクリア

[解決済] CTreeCtrlのポップアップメニュー起動時について


ひろ
 ひろ
(@ひろ)
ゲスト
結合: 25年前
投稿: 149
Topic starter  

たびたびすみません。
ひろと申します。

CTreeCtrlのアイテムを右クリックしたときに、
ポップアップメニューを出そうと思います。

メニューを出す時には、そのアイテムを選択状態にしようと
思うのですが、SelectItemを使用して選択状態にすると
そのアイテムが子アイテムを持っていると拡張されてしまいます。

ポップアップメニューを出すときは、
拡張したくないと考えています。

別の手段としてSelectDropTargetも試してみたのですが、
選択されたように見えても、Drop用のAPIのため
SelectDropTarget(NULL)を使用しないと他のアイテムの
選択ができなくなってしまいます。
また、SelectDropTarget(NULL)を使用すると、
ポップアップメニューが消えた後で元に選択されていたアイテムに
選択状態が戻ってしまいます。

環境は Win2k、VC++6.0、MFC4.2 です。

よろしくお願い致します。


引用未解決
トピックタグ
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

ウィンドウスタイルにTVS_SINGLEEXPANDが指定されてないでしょうか?
右クリックの時だけ拡張されちゃうんでしょうか。


返信引用
ひろ
 ひろ
(@ひろ)
ゲスト
結合: 25年前
投稿: 149
Topic starter  

ひろぴー様、たびたびで申し訳ございません。

TVS_SINGLEEXPANDは設定しています。

デフォルト動作だと、アイテムを右クリックされたときに、
すぐに直前に選択されていたアイテムに選択状態が戻ってしまいます。

子アイテムを持つ親アイテムを右クリックしたときに
SelectItemをコールするようにすると拡張されてしまいます。

子アイテムを持つアイテムを
拡張されずに選択状態にだけする方法はありますでしょうか?

よろしくお願い致します。


返信引用
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

SelectItemする前にウィンドウスタイルからTVS_SINGLEEXPANDを外してSelectItemしてから
TVS_SINGLEEXPANDを付けたらどうでしょうか?
こんな方法ズルですか?(ToT)
↑※試してません


返信引用
ひろ
 ひろ
(@ひろ)
ゲスト
結合: 25年前
投稿: 149
Topic starter  

ひろぴー様、その方法でやってみたらうまくできました。

何度もありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました