- 締切済み
VC++でやっているのですが
最近プログラミングを始めたのですが、現在はVC++でダイアログをつくっているのですが、メニューを設置しましてメニューのOPENを押すとCOMOPENするぷろぐらむをつくりました。そこでOENを押したら表示をCLOSEに切り替えたいのですが方法がわかりません。どなたか教えてください。ちなみにメニューはドロップダウン?ではなくメニューの直接クリックでOPENします。MFCです。どうかお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- machongola
- ベストアンサー率60% (434/720)
こんにちは。 大体こんな感じでしょうか。参考程度に。 以下を参考にイベントハンドラを追加 http://www.g-ishihara.com/mfc_me_01.htm void C???Dlg::OnOpenclose() { // TODO: ここにコマンド ハンドラ コードを追加します。 CMenu* pMenu = this->GetMenu(); MENUITEMINFO mii = {sizeof(mii), MIIM_DATA}; pMenu->GetMenuItemInfo(ID_OPENCLOSE, &mii); //open/closeの切り替え mii.dwItemData ^= 1; //設定する文字 const CString sName = (mii.dwItemData == 0) ? TEXT("OPEN") : TEXT("CLOSE"); mii.fMask = MIIM_STRING | MIIM_DATA; mii.cch = sName.GetLength(); mii.dwTypeData = const_cast<LPTSTR>(static_cast<LPCTSTR>(sName)); //此処で設定 pMenu->SetMenuItemInfo(ID_OPENCLOSE, &mii); //メニューを書き直す ::DrawMenuBar(this->GetSafeHwnd()); }