我需要实现EM_SETCUEBANNER的功能,使得在编辑控件内出现文本提示:
问题在于我不能使用通用控件的6版本,而这是获取微软提供的提示标语实现所必需的。
我已经研究过仅更改编辑控件的文本和字体格式。
Dark Gray Italic Text
但是它将抛出更高级组件库提供的组件包装器引发的“Change”事件,我找不到避免的方法。
所以我打算自定义绘制文本,在控件未聚焦且为空时绘制Cue Banner文本,并依靠默认绘制来实现其他操作。
编辑控件并没有像ListView、TreeView和其他控件一样漂亮地暴露出自定义绘制机制。 其他人也研究过这个问题,但似乎是一个几乎不可能的任务:
从目前的情况看,我需要处理以下消息:另外,我还需要找到一种方法在控件中显示插入符号,因为我还没有找到一种方法让Windows为我进行此操作而不必绘制上述的白色条。
- WM_ERASEBKGND、WM_PAINT(出于明显的原因)
- WM_SETFOCUS、WM_KILLFOCUS(防止白色条显示 - 如上所述)
- WM_CHAR(以处理和更新控件中的文本)
这将会很有趣。:roll_eyes:
考虑到Windows编辑控件从未被设计为自定义绘制:有没有人知道如何自定义绘制Windows编辑控件?
注意:我也会接受解决我的问题的答案,而不是回答我的问题。但是,任何想要自定义绘制编辑控件并遇到这个问题的人可能都希望得到答案。