这似乎是最简单的事情(使用Visual Studio):
CEdit
)
EN_CHANGE
事件处理程序OnEnChangeEdtSomeText()
太棒了 - 每次键入一个字符时,都会调用处理函数。但是,在我使用MFC控件处理的所有其他事件上,UpdateData()
将在控件和链接到它的变量之间交换数据 - 控件的状态反映在{{1之后的链接变量的状态中}} 叫做。为什么不在这里?显然我必须使用其他东西,到目前为止,UpdateData()
似乎可以正常工作,以便检索我在GetWindowText()
控件中看到的文字。
但是为什么CEdit
的正常功能被破坏了?例如,如果我在我的编辑控件中键入“foo”,然后单击或标签离开以终止焦点,然后返回键入“bar”,在UpdateData()
(所有6个)的调用中都没有{ {1}}导致链接到它的变量中的任何数据。为什么不?我可以相信OnEnChangeEdtSomeText()
不干涉其他数据输入吗?还有其他通知可以打破我所认为的控件和通过UpdateData()
机制链接的变量之间的正常链接吗?
答案 0 :(得分:0)
如果它是一个丰富的编辑,您需要在其上调用SetEventMask(ENM_CHANGE)
,否则邮件将不会在版本上发送。