我有一个 CEdit 派生控件,当底层数据为空时,它会显示字符串“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 并不是一个优雅的解决方案。
编辑:
- 我希望解决方案在我的自定义控件中,而不是在每个对话框中
谢谢