|
いつもお世話になっております、天翔記.jpです。
hidemaru.exeのプロセス内で、自作dll内で記述するようなC言語層での質問となり
ます。
■秀丸のエディタの文字列に下線が付いた状態で、マウスがハンドになっていること
を知りたい
秀丸エディタの編集領域(クラス HM32CLIENT)上で、
ウェブサイトアドレスっぽいものや、ファイル名っぽいものには下線が付き、
その上にマウスが行くと、手がハンドの形になります。
この、「マウスが(下線上の文字列に乗ったことで)手がハンドになっている」
ということを知る手立てはありますか?
(マクロ層ではなく、秀丸プロセス内前提でC言語ごりごりで)
以下のうちどちらかが知れればよいと考えています。
(他にも、マウスの下のウィンドウのクラス名や、
現在のプロセスとウィンドウの帰属の一致、
等々による別の判定は入れ込んでいます)
・下線の上にマウスが乗っている
(多分これは秀丸の関数が見えてないので難しいと判断しています)
・マウスがハンドの形になっている
(これは普通は可能なのですが、
秀丸が特殊なやり方をしているのか、上手く判定できませんでした)
以下、試してみたソースです。
// う〜ん、いつもfalse というか、そもそも
// 秀丸上でマウス形状がどのように変化してもhCursorのハンドル値が変化してい
ない。
bool IsHandCursor() {
HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(NULL);
HCURSOR hCursor = GetCursor();
if (hCursor == LoadCursor(hInstance, IDC_HAND)) {
OutputDebugStream(L"HAND\n");
return true;
}
else {
OutputDebugStream(L"OTHER\n");
return false;
}
}
何か適当な感じで判定できるような気がするのですが、
PICONINFO piconinfo;
GetIconInfo(hCursor, piconinfo);
のpiconinfoのフィールドを見て判定できたりしますか?
以上、質問となります、よろしくお願いします。
|
|