我需要实现EM_SETCUEBANNER的功能,其中文本提示出现在Edit控件中:

问题是我无法使用通用控件的第6版,这是获得Microsoft提供的cue横幅实现所需的.
我已经研究过简单地改变编辑控件的文本和字体格式
Dark Gray Italic Text
Run Code Online (Sandbox Code Playgroud)
但它会抛出Change事件(由更高的组件库提供的组件包装器),我无法找到避免的方法.
所以我改为自定义绘制文本,在控件未聚焦且为空时绘制Cue Banner文本,否则依赖默认绘制.
Edit控件不能很好地公开自定义绘图机制,如ListView,TreeView和其他提供的.
其他人已经研究过它,但这似乎是一项几乎不可能完成的任务:
从事情的方式来看,我将不得不处理以下消息:
- WM_ERASEBKGND,WM_PAINT(原因很明显)
- WM_SETFOCUS,WM_KILLFOCUS(防止白条显示 - 如上所述)
- WM_CHAR(处理和更新控件中的文本)
而且我还需要找到一种在控件中显示插入符号的方法,因为我还没有找到一种方法允许Windows为我这样做而不用画我提到的白条.
这将会非常好玩.:翻白眼:
鉴于Windows Edit控件从未打算自定义绘制:有没有人知道如何自定义绘制Windows编辑控件?
注意:我也会接受解决问题的答案,而不是回答我的问题.但是其他任何想要自定义绘制编辑控件的人,遇到这个问题,都可能会有一个答案.