【问题标题】:Delphi RichEdit, get y-pixel start of an arbitrary lineDelphi RichEdit,获取任意行的 y 像素开始
【发布时间】:2012-12-23 05:10:14
【问题描述】:

我有一个 Richedit,其中包含使用不同字体、样式、语言等的行。

我在排水沟里画画。我想在与对应线相同的 y 像素位置开始绘图。

【问题讨论】:

    标签: delphi line richedit trichedit


    【解决方案1】:

    向控件发送em_PosFromChar 消息。它返回给定索引处字符的客户端坐标,尽管the documentation 没有说明坐标代表什么(左上角、基线中心或什么)。您正在寻找角色的基线

    如果您还不知道感兴趣的字符的索引,请使用em_LineIndex 获取给定行号的字符索引。

    【讨论】:

    • +1。我看了看,这条消息没有列在 MSDN 上的 docs for the RichEdit 中,但是谷歌搜索在那里找到了一个链接(你发布的那个,顺便说一句)。 (我以为我记得类似的东西,但想不出来消息名称,当我在文档中找不到它时,我想我记错了。):-)
    • 谢谢!它有效:) 示例代码: char_idx := Perform(EM_LINEINDEX, line_idx, 0);执行(EM_POSFROMCHAR,WPARAM(@char_pt),char_idx); ARect.Top := char_pt.y; ARect.Bottom := ARect.Top + letter_height;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    相关资源
    最近更新 更多