inputボックスがクリックされたら空欄にするアレ Ver2

inputボックスがクリックされたら空欄にするアレです。hscallbk.as が必要です。

inputボックスがクリックされたら空欄にするアレです。hscallbk.as が必要です。

// hscallbk.as が必要です。
// http://chokuto.ifdef.jp/download/#hscallbk

#include "user32.as"
#include "hscallbk.as"

#define WM_KILLFOCUS 0x0008
#define WM_LBUTTONDOWN 0x0201
#define GWL_WNDPROC -4
// ダミー定義
#uselib ""
#func _InputWndProc "" int,int,int,int

	// コールバック関数の登録
	setcallbk Proc, _InputWndProc, *InputWndProc

	objsize 120, 20
	text = "検索"
	input text : objid_text = stat
	
	// input のウィンドウプロシージャの変更
	SetWindowLong objinfo(objid_text, 2), GWL_WNDPROC, varptr(Proc)
	// 変更前のウィンドウプロシージャ
	OldInputWndProc = stat

	// 比較のためにノーマルボタンを設置
	normal = ""
	input normal
	
stop

*InputWndProc
	// input ボックスが左クリックされた場合
	if callbkarg(1) == WM_LBUTTONDOWN{
		if text == "検索"{
			// input を空欄にする
			text = ""
			objprm objid_text, text
		}
	}else : if callbkarg(1) == WM_KILLFOCUS{
		// 非アクティブになったときの処理
			if text == ""{
				// input を元に戻す
				text = "検索"
				objprm objid_text, text				
			}
	}
	CallWindowProc OldInputWndProc, callbkarg(0), callbkarg(1), callbkarg(2), callbkarg(3)	
return