如何在编辑控件中偏移光标的位置?

时间:2012-03-13 01:53:45

标签: delphi drawing custom-controls editcontrol

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

如何偏移RectTCustomEdit后代中绘制文本和光标的位置?

1 个答案:

答案 0 :(得分:6)

如果您使用的是更新版本的Delphi,那么应该已经有了TButtonedEdit控件并可以完成您的工作。

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

SendMessage(CustomEdit.Handle, EM_SETMARGINS, EC_LEFTMARGIN or EC_RIGHTMARGIN, MakeLong(LeftMargin, RightMargin));