マウスの下に対応する位置のカーソル計算上の位置

概要

マウスの下に対応する位置にあるカーソル計算上での位置を取得することが出来ます。

C++では、マウスのスクリーン座標、あるいはアプリケーション内でのマウスの相対座標などは、
汎用的な手段でいとも簡単に取得できますので、あくまでも、秀丸独自となる「linenoとcolumn」に利用価値があると言えるでしょう。

秀丸で編集領域のマウスの下に対応する位置にあるカーソル計算上での位置を取得することが出来ます。

マクロ中でもマクロ中以外でも、常時取得することが出来ます。

decltype(Hm.Edit)::IMousePos Hm.Edit.getMousePos()
  • C++側のソース

    dllmain.cpp
    #include "HmCppInvoke.h"
    
    using namespace Hidemaru;
    using namespace std;
    
    
    extern "C" __declspec(dllexport) THmNumber test() {
    	Hm.funcDllExport();
    
    	// 編集領域のマウスの下に対応する位置
    	auto ret = Hm.Edit.getMousePos();
    	int lineno = ret.getLineNo();
    	int column = ret.getColumn();
    	int x = ret.getX();
    	int y = ret.getY();
    
    	// アウトプット枠へ
    	Hm.OutputPane.output(to_wstring(lineno) + L"," + to_wstring(column) + L"\r\n");
    
    	return 1;
    }