【发布时间】:2012-07-04 01:43:46
【问题描述】:
我有一个 CEdit 派生控件,当 undelying 数据为空时,它会显示字符串“N/A”。我最近添加了代码来清空控件(SetWindowText("");) 当它获得焦点并设置 if back to "N/A"(SetWindowText("N/A")) 当焦点丢失时如果用户离开控件为空。
唯一的问题是,将窗口文本设置为“”或“N/A”会触发 EN_CHANGE,所以我的对话框认为数据已更改。
如何避免在调用 SetWindowText (WM_SETTEXT) 时触发 EN_CHANGE?
注意事项
-我知道我可以将编辑控件设置为 Multiline=TRUE,但这对我来说是不可接受的。
-我的应用程序是 MBCS,所以我不能使用 SetCueBanner
-我想要一个优雅的解决方案。将父窗口临时设置为 NULL 并不是一个优雅的解决方案。
编辑:
-我希望解决方案在我的自定义控件中,而不是在每个对话框中
谢谢
【问题讨论】:
标签: c++ visual-studio user-controls mfc