「覚え間違い」を教えてください!

はじめまして。
質問させてください。

VC 2005 MFC を使用して開発しております。
ダイアログベースです。

ポップアップメニューのアイテムをクリックされたら
チェックマークをON OFFしたいのですが、現状うまくいきません。

[現在の方法]
//右クリックで表示
void CAnalogClockDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
CMenu menu;
VERIFY(menu.LoadMenu(IDR_MENU));
CMenu* pPopup = menu.GetSubMenu(0);
ASSERT(pPopup != NULL);

ClientToScreen(&point);
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, AfxGetMainWnd());

CDialog::OnRButtonDown(nFlags, point);
}
//項目の有効無効時
void CAnalogClockDlg::OnUpdatePopupFore(CCmdUI *pCmdUI)
{
pCmdUI->SetCheck(false);
pCmdUI->SetText(_T("test"));
}

リソースメニューで
[checked] = trueにして
初回表示はチェックありになっているのですが、
pCmdUI->SetCheck(false);
の処理で変更されません。

ちなみにキャプションを変更できません。

何か根本的に間違っているのでしょうか?

詳しい方がおりましたら
ご教授お願いいたします。

A 回答 (2件)

<チェック有効>


GetParent()->GetMenu()->CheckMenuItem(ここに項目ID,MF_BYCOMMAND|MF_CHECKED);
<チェック無効>
GetParent()->GetMenu()->CheckMenuItem(ここに項目ID,MF_BYCOMMAND|MF_UNCHECKED);
これを、“CAnalogClockDlg:OnMeneItem???” のイベントハンドラ
で行えばいくはずですが・・。
    • good
    • 0

<追記>


テキストの変更は
GetParent()->GetMenu()->ModifyMenu(項目ID、MF_BYCOMMAND|MF_STRING、上記同様の項目ID、"テキスト")
でできますよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報