如何知道 RichEdit中光标在第几行?

耙子 2003-08-19 07:23:47
如何知道 RichEdit中光标在第几行?
我说的行是指 TRichEdit::Lines中的行。
...全文
68 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
耙子 2003-08-27
  • 打赏
  • 举报
回复
的确不行,我看了help,他和EM_LINEFROMCHAR消息是一样的,我现在用你的办法倒数回去数到回车停.
Siney 2003-08-22
  • 打赏
  • 举报
回复
对于此贴,我有意见,到底你的问题解决了没有,
是用CaretPos.y吗?根据你的问题,用那个是不行的
但根据你的给分情况好像又是那样,
不知你到底问的是什么?
耙子 2003-08-22
  • 打赏
  • 举报
回复
Aweay(BCB绝对实力派)

我现在就是从光标往回倒着数的,谢谢各位,结帖子。
bluecyclone 2003-08-22
  • 打赏
  • 举报
回复
标记!
Friecin 2003-08-22
  • 打赏
  • 举报
回复
给pazee兄捧场!

RichEdit->CaretPos.y 最方便!
Siney 2003-08-21
  • 打赏
  • 举报
回复
to pazee

如果实现你的功能不用数回车了,你可以在按回车后,得到上一行是否缩进了,如果是则缩进接下来的那一行不就行了。
Siney 2003-08-21
  • 打赏
  • 举报
回复
CaretPos.y是得到光标的绝对行号,而如果存在换行的话,这个y指定的就不是Lines的索引号了,所以是不行的。
耙子 2003-08-21
  • 打赏
  • 举报
回复
谢谢各位

Aweay(BCB绝对实力派)
我是想实现自动缩进,下一行根据上一行的缩进来自动缩进。
jishiping 2003-08-21
  • 打赏
  • 举报
回复
就是 RichEdit1->CaretPos.y,来晚了。
josephjohnson 2003-08-21
  • 打赏
  • 举报
回复
up
Siney 2003-08-21
  • 打赏
  • 举报
回复
似乎也只有通过数回车来确定了,你不是想做一个Ctrl+Y的功能?
  • 打赏
  • 举报
回复
不用扫描回车,RichEdit1->Lines->Strings[n] 就是第 n 行的内容

RichEdit1->CaretPos.y 就是光标的行

RichEdit1->Lines->Strings[RichEdit1->CaretPos.y] 就是光标当前行的内容
耙子 2003-08-21
  • 打赏
  • 举报
回复
谢谢楼上的回答,不过你没看清题目,我问不是在 RichEdit里面的光标行,而是在他的成员Lines中当前的行,目前我只能通过扫描回车的个数来确定。
zjqyb 2003-08-19
  • 打赏
  • 举报
回复
sorry!!!
X // 光标的列号
Y // 光标的行号
zjqyb 2003-08-19
  • 打赏
  • 举报
回复
Sorry!!!
static int X, Y;

void TForm1::RichEdit1SelectionChange(TObject* Sender)
{
Y = SendMessage(RichEdit1->Handle, EM_LINEFROMCHAR,RichEdit1->SelStart, 0);
X = RichEdit1->SelStart -SendMessage(RichEdit1->Handle, EM_LINEINDEX, Y, 0);
X++; // 光标的行号
Y++; // 光标的列号
}

zjqyb 2003-08-19
  • 打赏
  • 举报
回复
void TForm1::RichEdit1SelectionChange(TObject* Sender);
{
int X, Y
Y = SendMessage(RichEdit1->Handle, EM_LINEFROMCHAR,RichEdit1->SelStart, 0);
X = RichEdit1->SelStart -SendMessage(RichEdit1->Handle, EM_LINEINDEX, Y, 0);
X++; // 光标的行号
Y++; // 光标的列号
end;

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧