こんにちは。
早速ですが質問です。
メニューのキャプションを動的に変更したいのです。
具体的には、
ファイル(F) 編集(E) 表示(V) ・・・・
|開く |
|新規 |
|hoge2 |←ここをhoge4にしたい。
|hoge3 |
|・・・ |
のです。
よろしくお願いします。
WinXP VS2005 MFC ダイアログべース
ずばりの答えにはなりませんが
オーナードローメニューやビットマップメニューで検索すると参考情報が
得られると思います
わたくしも似たような必要がありましたそのときは
http://www.vcppclub.com/samples/ctrl/p_menuex/menuex.html
がすごく役立ちました
SetMenuItemInfoで変更できます。
TCHAR buf[] = TEXT(新メニュー文字列);
MENUITEMINFO mii = { sizeof(mii) };
mii.fMask = MIIM_STRING;
mii.dwTypeData = buf;
pMenu->SetMenuItemInfo(2, &mii, TRUE);
CMenuクラスのModifyMenuでできそうな。
// CMainFrameクラス以外ならば、AfxGetMainWnd()->GetMenu()で取得する。
CMenu* pMenu = this->GetMenu();
CMenu* pSubMenu = pMenu->GetSubMenu( 0 );
UINT id = pSubMenu->GetMenuItemID( 2 );
pSubMenu->ModifyMenu( 2, MF_BYPOSITION | MF_STRING, id, TEXT( hoge ) );
CCmdUI機構でもできます。
void クラス::OnUpdateHoge2(CCmdUI* pCmdUI)
{
pCmdUI->SetText(_T(hoge4));
}
返信遅くなってすいません。
解決いたしました。
ありがとうございました。