0

リボンの同じパネルに 2 つの CMFCRibbonComboBox があります。例:

CMFCRibbonComboBox *individualComputers = 
   new CMFCRibbonComboBox(-1,FALSE, 100, "Individual Computers", -1);

individualComputers->AddItem("Computer 1");
individualComputers->AddItem("Computer 2");
individualComputers->AddItem("Computer 3");
individualComputers->SelectItem(0); 

CMFCRibbonComboBox * groupNames = 
   new CMFCRibbonComboBox (-1, FALSE, 100, "Computer Group Names", -1);

groupNames->AddItem("GROUP 1");
groupNames->AddItem("GROUP 2");
groupNames->AddItem("GROUP 3");
groupNames->SelectItem(0);

CMFCRibbonPanel* pComputerGroups =  cComputerGroups->AddPanel("All Groups"); 
//cComputerGroups is a Category

pComputerGroups->Add(individualComputers);
pComputerGroups->Add(groupNames);

問題は、UI(USer Interface) から groupNames コンボボックスで「グループ 1」を選択すると、グループ individualComputers から「コンピューター 1」も選択されることです。各コンボボックス グループを互いに独立させるにはどうすればよいですか? ありがとう。

4

1 に答える 1

1

コンボボックスをそれ自体に追加したくないのではないかと思いindividualComputers->Add(individualComputers);ますpComputerGroups->Add(individualComputers);

それ以外の場合、バグはおそらくコマンドのどこかにあるか、表示されていない updateUI 処理コードにあります。これは、両方のコンボ ボックスを識別するために同じ ID -1 を使用しているためです。

CMFCRibbonComboBoxさらに、 で示したように、追加の 2 つのパラメーターを取るオーバーロードされたコンストラクターはありませんgroupNames

将来的には、SSCCEに準拠した実際のコードを示してください

編集:残っている問題である可能性が高いため、以前に対処されていないコメントを太字にしました。使用を検討するconst UINT CB_COMP_ID = 1;と、メッセージ マップなどでまたはをconst UINT CB_GROUP_ID = 2;使用して各コンボ ボックスを個別に参照できます。CB_COMP_IDCB_GROUP_ID

于 2012-04-18T19:36:59.593 に答える