ツリービューの状態によってメニューを切り換えたい – プログラミング – Home

ツリービューの状態によってメニューを切...
 
通知
すべてクリア

ツリービューの状態によってメニューを切り換えたい


osuke
 osuke
(@osuke)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

はじめまして、osukeといいます。
MFCでSDIのアプリケーションを作成しています。
開発環境はVisualC++7.0/Windows2000です。

ツリーアイテムの状態(開いている or 閉じている)によってメニューを[開く] or [閉じ
る]に変更したいのですが、どなたかアドバイスをいただけないでしょうか。

具体的に説明すると、
閉じた状態のツリーアイテムを選択した時に[メニュー(M)]を開くと[開く(O)]というメ
ニューが表示され、展開した状態のツリーアイテムを選択した時に[メニュー(M)]を開く
と[開く(O)]というメニューだったところが[閉じる(C)]に変わっているようにしたいのです。
ツリーアイテムの状態取得の方法はわかるのですが、メニューを切り換える方法がわかり
ません。
よろしくお願いします。


引用解決済
トピックタグ
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

クラスウィザードでメニューIDを選び、UPDATE_COMMAND_UIを処理する関数を追加。
関数内で、pCmdUI->SetText(new text);

でできました。


返信引用
osuke
 osuke
(@osuke)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

たいちうさん、レスありがとうございます。

VC++7.0にてメニューIDにメッセージ(UPDATE_COMMAND_UI)を処理する関数を追加しようと
思ったのですが、リソースビューでメニューIDを選択してもメッセージを選択できません。
何か他の方法があるのでしょうか?


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

7.0は使ったことがないのですが、リソースビューではなくクラスウィザードです。
6.0では、クラスウィザードのメッセージマップで、クラス名にCMainFrameを、
オブジェクトIDで操作対象のメニューIDを選ぶと、
メッセージにCOMMANDとUPDATE_COMMAND_UIが選べます。

osukeさんの勘違いでなく、上に類似した方法でもできないなら、
他の回答者の方を待ってください。


返信引用
osuke
 osuke
(@osuke)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

私の勘違いでした。
UPDATE_COMMAND_UIを処理する関数を追加できました。

void CMainFrame::OnUpdateTestOpen(CCmdUI *pCmdUI)
{
pCmdUI->SetText(折りたたむ(&O));
}

この関数を呼び出すタイミングと呼び出すときの引数はどうすればいいのでしょうか?
引数は
CCmdUI *pCmdUI;と宣言して
OnUpdateTestOpen(pCmdUI);として呼べばコンパイルは通るのですが、実行すると以下の
ようなエラーになってしまいます。

Rus-Time Check Failure #3 - The variable pCmdUI' is being used without being define.

基本的なことが間違っているのかもしれませんが、アドバイスをよろしくお願いします。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

必要なタイミングでOS(?)が呼び出してくれます。
TRACEでも入れて確認してみてください。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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