• 締切済み

VC++でやっているのですが

最近プログラミングを始めたのですが、現在はVC++でダイアログをつくっているのですが、メニューを設置しましてメニューのOPENを押すとCOMOPENするぷろぐらむをつくりました。そこでOENを押したら表示をCLOSEに切り替えたいのですが方法がわかりません。どなたか教えてください。ちなみにメニューはドロップダウン?ではなくメニューの直接クリックでOPENします。MFCです。どうかお願いします。

みんなの回答

回答No.1

 こんにちは。  大体こんな感じでしょうか。参考程度に。  以下を参考にイベントハンドラを追加  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()); }