HSP
HSPに標準でついている サウンド再生機能では 同時に再生とか出来ないみたいなので
音声再生部分は MIAさんが作成した『HSP DirectSoundExtension』を使うようにしました
でも まずは ウインドウにボタンを複数配置して ウインドウ上のどのボタンを マウスのどのボタンで押されているかを
調べることが出来ないと 話にならないので その 部分を作ってみる事にしました
以下サンプルプログラム
HSP3をインストールして 上の内容をコピペして 「コンパイル+実行」すれば 普通にサンプルを見ることが出来ます
処理速度も特に問題ないようですね、慣れたら シンプルなプログラムを手軽に作れるようになりそうですね
もし 「もっといいアイデアあるぞ!」って人がいればアドバイスお願いします
音声再生部分は MIAさんが作成した『HSP DirectSoundExtension』を使うようにしました
でも まずは ウインドウにボタンを複数配置して ウインドウ上のどのボタンを マウスのどのボタンで押されているかを
調べることが出来ないと 話にならないので その 部分を作ってみる事にしました
以下サンプルプログラム
;--------------------------------------------------------------------------------- ; 使用するDLLを宣言 ;--------------------------------------------------------------------------------- #uselib "user32.dll" #func SetTimer "SetTimer" int, int, int, int #func KillTimer "KillTimer" int, int #cfunc WindowFromPoint "WindowFromPoint" int, int ;--------------------------------------------------------------------------------- ; 定数を定義 ;--------------------------------------------------------------------------------- #define WM_TIMER 0x0113 #define ID_TIMER 1 ;--------------------------------------------------------------------------------- ; イベントを定義 ;--------------------------------------------------------------------------------- onexit gosub *_OnExit SetTimer hwnd, ID_TIMER, 100, 0 oncmd gosub *_OnTimer, WM_TIMER ;--------------------------------------------------------------------------------- ; ボタン配置 ;--------------------------------------------------------------------------------- pos 5, 5 : button gosub "Button1",*Button1_OnClick : hButton1 = objinfo (stat, 2) pos 5,35 : button gosub "Button2",*Button2_OnClick : hButton2 = objinfo (stat, 2) pos 5,65 : button gosub "Button3",*Button3_OnClick : hButton3 = objinfo (stat, 2) pos 5,95 : button gosub "Button4",*Button4_OnClick : hButton4 = objinfo (stat, 2) ;--------------------------------------------------------------------------------- ; ボタンのハンドル一覧を表示 ;--------------------------------------------------------------------------------- mes mes "ボタンのハンドル一覧" mes "Button1 : " + hButton1 mes "Button2 : " + hButton2 mes "Button3 : " + hButton3 mes "Button4 : " + hButton4 ;--------------------------------------------------------------------------------- ; 待機開始 ;--------------------------------------------------------------------------------- stop ;--------------------------------------------------------------------------------- ; イベント処理 ;--------------------------------------------------------------------------------- ; タイマー処理 *_OnTimer ; 非アクティブ時は処理しない if ginfo(2) = -1 { return } ; マウスボタンの状態を取得 getkey IsL, 1 getkey IsM, 4 getkey IsR, 2 buf1 = "" if IsL { buf1 = buf1 + " L " } if IsM { buf1 = buf1 + " M " } if IsR { buf1 = buf1 + " R " } ; マウスが乗っているウインドウのハンドルを取得 buf2 = "" hCurrentWindow = WindowFromPoint(ginfo(0),ginfo(1)) buf2 = str(hCurrentWindow) ; タイトル部分に マウスが乗っているボタンのハンドルと ボタンの状態を表示 title buf2 + buf1 return ; ボタンクリック *Button1_OnClick return *Button2_OnClick return *Button3_OnClick return *Button4_OnClick return ; 終了処理 *_OnExit KillTimer hwnd, ID_TIMER end |
処理速度も特に問題ないようですね、慣れたら シンプルなプログラムを手軽に作れるようになりそうですね
もし 「もっといいアイデアあるぞ!」って人がいればアドバイスお願いします