ウインドウ上のカーソル座標

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
よしき
記事: 13
登録日時: 2006年9月21日(木) 21:55
お住まい: 愛知県

ウインドウ上のカーソル座標

#1 投稿記事 by よしき »

GetCursorPosでスクリーン座標は手に入るのですが、hMainWnd上での座標を手に入れることはできないのでしょうか?

もしやウインドウの座標を求めてそこから計算とかになるんですか…?
OverTaker
記事: 231
登録日時: 2005年5月31日(火) 17:14
お住まい: 茨城県

#2 投稿記事 by OverTaker »

マウスが動いた時のイベントで取得される座標を、変数に保存しておく、というのでは駄目でしょうか?
http://www.activebasic.com/help_center/ ... seMove.htm
よしき
記事: 13
登録日時: 2006年9月21日(木) 21:55
お住まい: 愛知県

#3 投稿記事 by よしき »

思いつきもしませんでした。
すばらしいアイディアありがとうございます。
高信期

#4 投稿記事 by 高信期 »

ScreenToClient関数を使う手もあります。

コード: 全て選択

Dim CursorPos As POINTAPI
GetCursorPos(CursorPos)
ScreenToClient(hMainWnd, CursorPos)
よしき
記事: 13
登録日時: 2006年9月21日(木) 21:55
お住まい: 愛知県

#5 投稿記事 by よしき »

こんな便利なものがあったとは・・・。
OverTakerさんのアイデアより多少処理がかるくなりそうですね。
ありがとうございます。
トモカズ

横からすみません

#6 投稿記事 by トモカズ »

便乗質問になってしまいます。申しわけありません。
高信期さんの手法はN88BASICモードで使用することは可能なのでしょうか?
もし可能であればやり方をご教授いただけないでしょうか?
コンパイル時に「MOUSE.abp(4) - "hMainWnd" 無効な識別子です」のエラーとなってしまいます。

よろしくお願いいたします。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#7 投稿記事 by konisi »

一応可能です。
AB4系だと、プロンプトのウインドウハンドルは_PromptSys_hWndに入ってます。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
トモカズ

自己レスです(連続投稿申しわけありません)

#8 投稿記事 by トモカズ »

以下のコードにて解決しました。
スレ汚しになってしまい申し訳ありませんでした。

#N88BASIC
Dim CursorPos As POINTAPI
Dim MX%,MY%

*LOOP1
GetCursorPos(CursorPos)
ScreenToClient(_PromptSys_hWnd, CursorPos)
MX%=CursorPos.x
MY%=CursorPos.y
LOCATE 0,0:PRINT MX%;MY%
GOTO *LOOP1
トモカズ

#9 投稿記事 by トモカズ »

konisiさん、上の返信に気がつきかず自己レスと書いてしまいました。お礼が書けず失礼いたしました。
何度もご丁寧にありがとうございます。
返信する