sendmsg命令 チップ集 (1)

Last Update : 2007/04/xx

ウィンドウ関連 || オブジェクト関連1 || オブジェクト関連2

HSPウィンドウ関連

 sendmsg命令の第1パラメータで指定するウィンドウハンドルの値は、HSPのシステム変数hwndに格納されてます。変数名の由来は「handle of window」から。screen命令やbgscr命令で表示されるウィンドウIDごとにこのハンドル値は異なります。

□ マウスによる自ウィンドウの移動

	onclick gosub *onjump
	stop

*onjump
;	マウスが左クリックされると、wparam に 1 が返る。
;	WM_NCLBUTTONDOWNメッセージ
	if wparam = 1 {
		sendmsg hwnd, $A1, 2
		return
	}

	return

□ 右クリックでシステムメニューの表示

;	※エディタの[HSP]メニューの[HSP拡張マクロを使用する]を要有効

	onclick gosub *onjump
	stop

*onjump
;	マウスが右クリックされると、wparamに2が返る。
	if wparam = 2 {
		sendmsg hwnd, $313, , ginfo(0) | ginfo(1) * $10000
		return
	}

	return

□ ウィンドウタイトル名の取得

;	title命令の逆パターン

;	文字列取得用の領域をあらかじめ確保(64バイト)
	sdim textbuf

;	ウィンドウメッセージ WM_GETTEXT
	sendmsg hwnd, $D, 64, varptr(textbuf)
	mes "["+textbuf+"] ("+stat+"byte)

 以下はWM_SYSCOMMANDメッセージ(0x0112)で実現できるもの。

□ 自ウィンドウの最小化 (SC_MINIMIZE)

;	タスクバー上にウィンドウ最小化
	sendmsg hwnd, $112, $F020

	wait 100

;	ウィンドウを元の位置に戻す(SC_RESTORE)
	sendmsg hwnd, $112, $F120

□ 自ウィンドウの最大化 (SC_MAXIMIZE)

;	Win32 API関数でウィンドウスタイルを変更して、サイズ可変ウィンドウにする必要あり
;	 (→ HSP3 あれこれ ウィンドウ編)

	sendmsg hwnd, $112, $F030

□ Windowsのスタートメニューの表示 (SC_TASKLIST)

	sendmsg hwnd, $112, $F130

□ スクリーンセーバーの起動 (SC_SCREENSAVE)

;	スクリーンセーバーの設定が有効になってる必要あり

	sendmsg hwnd, $112, $F140

□ ディスプレイの省電力表示 (SC_MONITORPOWER)

;	省電力モードが実現可能なディスプレイである必要

	sendmsg hwnd, $112, $F170, 1

;	ちなみにディスプレイの電源オフ (省電力モードに移行するものもあり)
//	sendmsg hwnd, $112, $F170, 2

;	省電力モード&電源オフからの復帰
//	sendmsg hwnd, $112, $F170, -1

^

Copyright © 2005-2008 Kpan. All rights reserved.