Iメニュー矩形項目の下にサブメニューを有するMFCアプリケーションを有するMFCないかどうかを知ります。ユーザーがGUIからクリックすると、サブメニューの黒は選択されません。ユーザーがサブメニューを選択するなどのインターフェイスが必要な場合は、それに加えて目盛りが表示されます。しかし、そうすることができませんでした。これは彼がクリックしたときにユーザーのフォーカスを取得しようとしたコードです。
This is for ON_COMMAND:
ON_COMMAND(ID_IMAGEOPTIONS_IMAGEWITHBLACKRECTANGLES, &CMainFrame::OnToggleTestBlackRectangles)
void CMainFrame::OnToggleTestBlackRectangles()
{
CMenu menu;
menu.LoadMenu(IDR_MAINFRAME);
menu.CheckMenuItem(ID_IMAGEOPTIONS_IMAGEWITHBLACKRECTANGLES, MF_CHECKED);
UINT SST = menu.GetMenuState(ID_RECTANGLE_BLACK, MF_BYCOMMAND);
}
This is for ON_UPDATE_COMMAND_UI:
ON_UPDATE_COMMAND_UI(ID_IMAGEOPTIONS_IMAGEWITHBLACKRECTANGLES, &CMainFrame::OnCheckMenu)
void CMainFrame::OnCheckMenu(CCmdUI *pCmdUI)
{
pCmdUI->SetCheck(0);
}
あっても、ユーザは、サブメニューをクリックすると、チェックマークが表示されず、さらにgetmenustate代わりに非0を返す - ゼロ値。
このコードでは何も行いません。コマンドの横にチェックマークを追加しますか? –
@BarmakShemirani私はちょうど私の投稿を更新し、私が実装した完全な機能を書いた。 – chaitanyakrishna
メンバ変数 'BOOL m_black;を宣言して、trueまたはfalseに初期化します。 'OnToggle()'を '{m_black =!m_black;}'に変更してください。 'OnCheckMenu'を' {pCmdUI-> SetCheck(m_black);}に変更してください。 –