リッチエディットのURL検出

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: リッチエディットのURL検出

Re: リッチエディットのURL検出

by 長瀬 » 2005年12月16日(金) 15:46

>Tomorrow さん

ご紹介いただいたサイトを見ながら出来ました。
ありがとうございました。

Re: リッチエディットのURL検出

by Tomorrow » 2005年12月16日(金) 13:56

ABで定義されてないAPI関数や構造体を定義するときは、まずC言語用定義を探します。
検索エンジンで関数名や構造体名をキーワードにしてMSDNのサイトを見つけるのが、もっとも確実です。

コード: 全て選択

typedef struct {
    NMHDR nmhdr;
    UINT msg;
    WPARAM wParam;
    LPARAM lParam;
    CHARRANGE chrg;
} ENLINK;
C用の構造体定義が見つかったらABの書式に書き換えます。
↓が参考になるでしょう。
http://hira.hopto.org/win32api/convert01.htm
どうしてもわからない場合、Cのヘッダファイルをさがして元の定義が何なのかを調べます。

コード: 全て選択

Type ENLINK
	nmhdr As NMHDR
	msg As DWord
	wParam As WPARAM
	lParam As LPARAM
	chrg As CHARRANGE
End Type

過去ログを探すと他の人がすでに定義したものが見つかるかもしれません。
また、こちらのサイトではAB用のWin32API定義ファイルを公開しています。
これらを切り貼りして利用する手もあります。(著作権等に注意)

Re: リッチエディットのURL検出

by 長瀬 » 2005年12月14日(水) 20:10

もしかして、ENLINK構造体の定義とかもしないといけないんですか
よくわかりません・・・(泣)

Re: リッチエディットのURL検出

by Tomorrow » 2005年12月14日(水) 18:18

> [猫でもわかるプログラミング - 第149章 本文中からURLを検出する ]
> http://www.kumei.ne.jp/c_lang/sdk2/sdk_149.htm
>
> 参考にならなかったらすいません。

イベントマスクにENM_LINKを加えるのまで出来たんですが、
WM_NOTIFYメッセージの処理がよくわかりません・・・
↑のサイトのWM_NOTIFYメッセージハンドラの部分のみをAB風に書き直しただけのものですが...

Re: リッチエディットのURL検出

by 長瀬 » 2005年12月14日(水) 16:38

> ここは参考になりませんでしょうか?(C言語ですが…)
>
> [猫でもわかるプログラミング - 第149章 本文中からURLを検出する ]
> http://www.kumei.ne.jp/c_lang/sdk2/sdk_149.htm
>
> 参考にならなかったらすいません。

イベントマスクにENM_LINKを加えるのまで出来たんですが、
WM_NOTIFYメッセージの処理がよくわかりません・・・

Re: リッチエディットのURL検出

by Mario2 » 2005年12月13日(火) 22:53

ここは参考になりませんでしょうか?(C言語ですが…)

[猫でもわかるプログラミング - 第149章 本文中からURLを検出する ]
http://www.kumei.ne.jp/c_lang/sdk2/sdk_149.htm

参考にならなかったらすいません。

by konisi » 2005年12月13日(火) 21:40

コード: 全て選択


Function OnMouse(ByRef X As DWord,ByRef Y As DWord) As DWord
	Dim A As POINTAPI
	Dim B As RECT
	GetWindowRect(_PromptSys_hWnd,B)
	GetCursorPos(A)
	X=A.x-B.left-6
	Y=A.y-B.top-31
	OnMouse=-1
End Function
メニューが入っていなければ、これでマウスのクライアントな位置は把握できたと思います。(古いコード、しかもpromptモードのものから引っ張ったのでなんともいえませんが。)
メニューが入っている場合は上の31を少し大きくしてみるなりして工夫してください。
マウスのボタンがクリックされたかどうかは、僕の場合は

コード: 全て選択


if GetAsyncKeyState(1) And &h8000 Then
    '左クリック時
Else if GetAsyncKeyState(2) And &h8000 Then
    '右クリック時
End if
これでやっちまいます。

リッチエディットのURL検出

by 長瀬 » 2005年12月13日(火) 15:34

みなさんはじめまして。

リッチエディットを作って、EM_AUTOURLDETECTを送ってURLの検出はできたのですが、
URL検出部分にマウスが来たり、マウスがクリックされたときを知るにはどうすればよろしいでしょうか?

ページトップ