我想获得TMemo中文本(aWord)的位置/位置(以像素为单位)。我的代码是这样的:
var Size: TSize; Pt: Cardinal; aWord: string; x, y: Integer; begin ... Pt := Perform(EM_POSFROMCHAR, aStart-1, 0); Windows.GetTextExtentPoint32(DC, PChar(aWord), aLen, Size); x:= Smallint(LoWord(Pt)); y:= Smallint(HiWord(Pt));
向下滚动时如何获取位置?
官员 documentation 说:
如果已删除字符,则返回的坐标可以为负 滚动到编辑控件的客户端区域之外。坐标 被截断为整数值。
我不知道怎么解释这个。
傻。我的脑子一直在想“坐标被截断成整数值”——我仍然不知道这是什么意思。我试图转换那些坐标。
解决方案很愚蠢:如果我们得到一个负数,这意味着文本在屏幕之外。我们不尝试提取/转换Loword和HiWord。我们只是退出程序。
此外,Pt应为“Nativent”。