我在缓冲区中有一些点的坐标:x,y相对于窗口的开头; Ho通过这些相对坐标获得文本位置(缓冲区开头的偏移量)?
予。 E:
---------------启动缓冲区
sdfv efrv s
=========================================< - 窗口启动边界
s!df verg 34v dc
sd sdf
=========================================< - 窗口结束边界
如果该点位于感叹号位置,则x = 1,y = 0,position = 13.现在我知道(x,y)=(1,0),如何获得位置?
编辑(响应Stefan):
这个坐标来自事件,在mause-1下来整流。我从函数tmm-menubar-mouse
中获取它。整个事件看起来像这样:
(mouse-1(零菜单栏(45.0)15023零2924(45.0)零(0 .0)(1.0)))
问题是,由于bug某些坐标被错误计算,我重新计算它们,但是我必须得到一个文本位置才能将新事件传递给mouse-drag-region
。我通过window-at
得到窗口,并从它们重新计算绝对坐标到相对减去窗口的左上角。
答案 0 :(得分:3)
我建议你尝试posn-at-x-y
,虽然这些X和Y是像素位置,但你似乎说你有“字符单元格”的位置。如果这不起作用,请更好地解释你的X和Y来自哪里,因为这些“字符单元位置”有各种定义,这取决于它们如何处理可变大小的字符,如TAB,比例字体,图像......