SetFocus 和 KillFocus

SetFocus and KillFocus

我的对话框中有一个 CMFCTabCtrl,我的 CMFCTabCTrl 有两个选项卡。

第一个选项卡有 CComboBox,第二个选项卡也有 CComboBox

在第一个选项卡的 ComboBox 中新添加的任何项目都将反映在第二个选项卡的 ComboBox 中。同样,在第二个选项卡的 ComboBox 中新添加的项目将反映在第一个选项卡的 ComboBox 中。

为此,我将所有 ComboBox 项目放在一个向量中,并且在每个对话框的 WM_SETFOCUS 事件中,我将项目添加到 ComboBox。

当用户在 ComboBox 中键入某些内容但随后用户选择了另一个控件或 dialog/tab 我也在将该项目添加到 ComboBox。为此,我在父对话框 OnCommand 中跟踪 CBN_KILLFOCUS 并将项目添加到 ComboBox。

现在我的问题是,当用户在 ComboBox 中键入内容并单击第二个选项卡时,首先调用第二个选项卡的 SetFocus,然后仅调用带有 CBN_KILLFOCUS() 消息的 OnCommand。所以第二个选项卡没有第一个选项卡新添加的项目,而第一个选项卡有那个项目。

如何使 ComboBox 项目在显示之前可用于第二个选项卡。

如果我在 AFX_WM_CHANGING_ACTIVE_TAB 上进行必要的操作(无论我在 killfocus 上做什么操作),我都能达到我的要求。