0

私はバッファ内のある点の座標を持っています: x,y ウィンドウの先頭に対して相対的に; これらの相対座標でテキスト位置 (バッファの先頭のオフセット) を取得するにはどうすればよいですか?

すなわち:

--------------- バッファの開始

sdfv efrv s

======================================== <-- ウィンドウ開始境界

s!df verg 34v dc
sd sdf 

======================================== <-- ウィンドウ終了境界

ポイントが感嘆符の位置にある場合は、x = 1、y = 0、位置 = 13 になります。(x,y)=(1,0) がわかったので、位置を取得するにはどうすればよいですか?

編集(Stefan への返信) : この座標は、mause-1 ダウンのフェアリング イベントからのものです。関数から取得しますtmm-menubar-mouse。イベント全体は次のようになります。

(mouse-1 (nil メニューバー (45 . 0) 15023 nil 2924 (45 . 0) nil (0 . 0) (1 . 0)))

問題は、バグが原因で一部の座標が正しく計算されず、それらを再計算することですが、新しいイベントを に送信するためにテキスト位置を取得する必要があることmouse-drag-regionです。でウィンドウを取得しwindow-at、絶対座標を再計算して、それらからウィンドウの左上角度を相対的に減算します。

4

1 に答える 1

3

posn-at-x-yこれらの X と Y はピクセルの位置ですが、代わりに「文字セル」の位置があると言っているようですが、試してみることをお勧めします。それがうまくいかない場合は、TAB、プロポーショナル フォント、画像などの可変サイズの文字を処理する方法に応じて、そのような「文字セル位置」のさまざまな定義があるため、X と Y がどこから来たのかをよりよく説明してください.. .

于 2012-10-05T16:07:31.763 に答える