4

我正在构建一个自定义编辑控件,其中包括在编辑控件内添加左侧的图标和右侧的图标按钮。这需要将文本(和光标)的起点向右移动 X 个像素。这也意味着我需要“限制”文本的绘制宽度,以便为右侧的按钮腾出空间。目的是在左侧提供自定义图标,例如在浏览器中,以及在右侧提供“X”按钮以清除编辑控件的内容。

如何抵消在后代Rect中绘制文本和光标的位置?TCustomEdit

4

1 回答 1

6

如果您使用的是较新版本的 Delphi,则应该已经有一个 TButtonedEdit 控件并且可以完成您的工作。

如果没有,我认为您可以向您的 TCustomEdit 发送 EM_SETMARGINS 消息来设置左右边距。

SendMessage(CustomEdit.Handle, EM_SETMARGINS, EC_LEFTMARGIN or EC_RIGHTMARGIN, MakeLong(LeftMargin, RightMargin));
于 2012-03-13T02:14:52.917 回答