如何从richedit的行列数得到当前的象素数? 例如当前光标在第五行,第三列,我想知道它在Richedit中的象素坐标?(例如210,101) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以直接用GetCaretPos得到坐标 我要的是在Richedit控件本身中的坐标,GetCaretPos得到的好像不是吧? The caret position is always given in the client coordinates of the window that contains the caret.你完全可以自己试试 我参照下面的程序已解决给你个例子,不过我是用TMemo+TListBox实现的var t:TEXTMETRIC;MemoHdc:HDC;begin MemoHDC:=GetDC(Memo1.Handle);//得到Memo1的设备上下文句柄 {得到Memo1的字体信息} GetTextMetrics(MemoHDC,t); //计算新坐标.+10和+20是为了防止把当前的Caret遮住了 ListBox1.Left :=Memo1.Left+Memo1.CaretPos.X *t.tmAveCharWidth +10; ListBox1.top:=Memo1.Top+Memo1.CaretPos.Y *t.tmHeight +20 ; ReleaseDC(MemoHDC,Memo1.Handle );//用完了要释放调end;我的程序(其中r,c是当前的行列) try RichEditHdc:=GetDC(RichEdit1.Handle);// GetTextMetrics(RichEditHdc,METRIC); except ReleaseDC(RichEditHdc,RichEdit1.Handle ); end; lb_Code.Left:=METRIC.tmAveCharWidth*(C+1); lb_Code.Top :=METRIC.tmHeight*(R+1); 超难! 如何对文件夹进行加密? 谁能告诉我ListView控件如何控制任一行的文字颜色? 关于exe文件 sql除了在TQuery中使用外,还能怎么使用,比如我用的是clientDataSet怎么用SQL 晕了,算术运算第一次对,以后就不对了??? NMSMTP怎样收邮件? 求救,怎么使程序支持多国语言?? 在MTS数据模块中如何建立这样的方法? ziyunpiao1(紫云飘)高手,再次打忧? 有没有比delphi自带的pageControl功能更大的控件? 请教各位,有谁知道QRCompositeReport怎么用的?(在线等...) 请教:一个错误消息的原因及解决方法;
你完全可以自己试试
var t:TEXTMETRIC;MemoHdc:HDC;
begin
MemoHDC:=GetDC(Memo1.Handle);//得到Memo1的设备上下文句柄
{得到Memo1的字体信息}
GetTextMetrics(MemoHDC,t);
//计算新坐标.+10和+20是为了防止把当前的Caret遮住了
ListBox1.Left :=Memo1.Left+Memo1.CaretPos.X *t.tmAveCharWidth +10;
ListBox1.top:=Memo1.Top+Memo1.CaretPos.Y *t.tmHeight +20 ;
ReleaseDC(MemoHDC,Memo1.Handle );//用完了要释放调
end;我的程序(其中r,c是当前的行列) try
RichEditHdc:=GetDC(RichEdit1.Handle);//
GetTextMetrics(RichEditHdc,METRIC);
except
ReleaseDC(RichEditHdc,RichEdit1.Handle );
end;
lb_Code.Left:=METRIC.tmAveCharWidth*(C+1);
lb_Code.Top :=METRIC.tmHeight*(R+1);