请问如何获得TMemo控件中光标所处的位置,即当前行和当前列?
如上,万分感谢!! 问题点数:20、回复次数:5Top
1 楼zihan(子寒)回复于 2003-08-02 21:38:19 得分 10
行:line =SendMessage(RichEdit1->Handle, EM_EXLINEFROMCHAR,0,RichEdit1->SelStart);
列:lineindex=SendMessage(RichEdit1->Handle,EM_LINEINDEX,line,0);Top
2 楼AeLord(独孤C++)回复于 2003-08-03 09:33:05 得分 0
这方法用在TMemo控件中好像没用,返回值总是为0,0Top
3 楼dxkh(沧海一粟)回复于 2003-08-03 09:51:05 得分 5
CaretPosTop
4 楼qibo999(行路者)回复于 2003-08-03 12:03:36 得分 5
行:int line =SendMessage(Memo1->Handle, EM_LINEFROMCHAR, Memo1->SelStart, 0);Top
5 楼AeLord(独孤C++)回复于 2003-08-03 14:22:08 得分 0
问题基本得到解决,使用CaretPos最为简洁,如下代码可以在当前位置插入任意字符串:
int Line, Volume;
Line=memEditor->CaretPos.y ;
Volume=memEditor->CaretPos.x ;
memEditor->Lines->Strings[Line]=memEditor->Lines->Strings[Line].Insert(Content, Volume+1);//其中Content表示字符串
但这时遇到一个新问题,通常改变TMemo中内容时可以使CanUndo属性为True,但上述代码却不能达到这一效果(可能需要用到API帮忙),这也就使得编辑效果不够完善,给位可知如何解决此问题?
Top



