1. 使RichEdit的窗口透明. SetWindowLong(RichEdit.Handle, GWL_EXSTYLE, GetWindowLong(RichEdit.Handle,GWL_EXSTYLE) or WS_EX_TRANSPARENT);
2. 截获RichEdit的Wndproc, 处理以下消息:
CN_CTLCOLORMSGBOX..CN_CTLCOLORSTATIC: 返回一个NullBrush的handle
(防止编辑状态时清除背景).
WM_ERASEBKGND: 什么都不做就返回1(防止窗口在刷新时清除背景)
本文介绍如何通过修改 RichEdit 控件的样式属性及重写窗口过程来实现控件的透明效果,包括处理 WM_ERASEBKGND 消息避免背景被清除,以及 CN_CTLCOLORMSGBOX 和 CN_CTLCOLORSTATIC 消息返回空画刷句柄。
864

被折叠的 条评论
为什么被折叠?



