私はマウスを右クリックしてポップアップメニューを表示するツリービュー(CTreeView
)を持っています。 私のコンテキストメニューには3つの項目(A、B、C)しか選択できないため、ツリービューにはチェックボックス付きで注文された料理の長いリストが表示されます。注文商品がない場合はメニュー項目AとBを無効にして、それが有効な場合に有効にします。私はそう項目がチェックされていない場合、一部のコンテキストメニュー項目を無効にする
CFoodView::OnUpdateItemB(CCmdUI* pCmdUI)
{
if TreeView has no items
{
pCmdUI->Enable(FALSE);
}
else
{
*Search* the tree to get selected items
if None is checked
{
pCmdUI->Enable(FALSE);
}
else there are checked items
pCmdUI->Enable(TRUE);
}
}
方法CFoodView::OnUpdateItemA(CCmdUI* pCmdUI)
のようなそれらの状態を処理するためにCFoodView::OnUpdateItemA(CCmdUI* pCmdUI)
//CFoodView inherits CTreeView
とCFoodView::OnUpdateItemB(CCmdUI* pCmdUI)
を作成
は同じです。
これは、このGUI機能を処理する正しい方法ではないと思います。
ご返信ありがとうございます。すべてうまく動作します。私の懸案事項は、** Search **メソッドについてです。このメソッドは、ツリー全体で再帰的に動作し、ツリーのチェックされたノードとリーフを取得します。私は、ユーザーが同時に多くのデータをツリーにロードできるようにすることができないかもしれないと思う。だから私は上記の質問をしました。 ところで、私はMSVS 2017のMFCを使っています。 –