mfc - SetFocus 和 KillFocus
问题描述
我的对话框中有一个CMFCTabCtrl
,我CMFCTabCTrl
有两个选项卡。
第一个选项卡有一个CComboBox
,第二个选项卡也有一个CComboBox
。
在第一个选项卡的 ComboBox 中新添加的任何项目都将反映在第二个选项卡的 ComboBox 中。同样,在第二个选项卡的 ComboBox 中新添加的任何项目都将反映在第一个选项卡的 ComboBox 中。
为此,我将所有 ComboBox 项放在一个向量中,并且在每个对话框的WM_SETFOCUS
事件中,我将项添加到 ComboBox。
当用户在 ComboBox 中键入内容但随后用户选择另一个控件或对话框/选项卡时,我也将该项目添加到 ComboBox。为此,我CBN_KILLFOCUS
在父对话框中进行跟踪OnCommand
并将项目添加到 ComboBox。
现在我的问题是,当用户在 ComboBox 中键入内容并单击第二个选项卡时,SetFocus
首先调用第二个选项卡,然后只 CBN_KILLFOCUS()
调用带有消息的 OnCommand。因此,第二个选项卡没有第一个选项卡新添加的项目,而第一个选项卡具有该项目。
如何使 ComboBox 项目在显示之前可用于第二个选项卡。
解决方案
如果我在 AFX_WM_CHANGING_ACTIVE_TAB 上进行必要的操作(无论我在 killfocus 上做什么),我都能达到我的要求。
推荐阅读
- audio - 解码 RTP iLBC 有效载荷
- r - stringr str_replace 上的多个模式和替换?
- c++ - 使用 .get() 和 -> 运算符有区别吗?
- python - Pandas concat 函数给出 ValueError :传递值的形状是 {passed},索引暗示 {implied}
- javascript - 在 javascript 中从 json 对象访问 n 个值
- python - 循环到文本文件的正确函数
- node.js - 创建新 React Native 项目的问题:运行可选依赖项的安装脚本时出错:fsevents:命令失败
- for-loop - 我在这里做错了什么-机器人框架中的循环
- batch-file - 解析包含引号的命令参数
- scala - 如何使用 api rest 传递 flink 流作为参数并返回转换后的流