Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> PALHSPマニュアル -> ウインドウ制御命令 -> ウインドウ/オブジェクトにメッセージを送信(非同期処理)

pal_PostMessage

このページは、HSP(Hot Soup Processor)用機能拡張プラグインPALHSP(Progressive and Advanced Library for HSP)の公式マニュアルです。 現在、「pal_PostMessage」命令についての説明を表示しています。マニュアル目次はこちら

pal_PostMessage int,int,int,int

呼び出し方:
p1 = 0〜(0) : ウインドウハンドル
p2 = 0〜(0) : メッセージID
p3 = 0〜(0) : パラメータ1
p4 = 0〜(0) : パラメータ2

この命令の説明

p1で指定したウインドウまたはオブジェクトに、メッセージを送ります。

HSP3標準命令の、sendmsgと同じ仕様で、使い方も同じです。

ただし、以下の違いがあります。

sendmsg : メッセージを直接、同期的に送信します。
メッセージを送信し終えるまで、呼び出し元の処理はブロックされます。

pal_PostMessage : メッセージを、送り先のウインドウ/オブジェクトのメッセージキューの末尾に、非同期的に送信します。呼び出し元は、メッセージを送信した直後から、処理を継続する事ができます。

サンプルコード

// ウインドウを最小化
#include "palhsp.hsp"
pal_PostMessage hwnd, 0x112, 0xf020

(使用例2)
// sendmsgと、pal_PostMessageの違いを確認するサンプル
#include "palhsp.hsp"

onexit *ex

// pal_PostMessageの場合。
// メッセージを送った直後の処理も、すぐに実行されます。
pal_PostMessage hwnd, 0x0010, 0 // 0x0010 = WM_CLOSE
mes "非同期的に処理されています。"

// sendmsgの場合。
// 送ったメッセージの処理が完了するまで、
// 次の処理に進むことができません。
sendmsg hwnd, 0x0010, 0
mes "sendmsgで処理がロックされているため、ここは表示されません。"
stop

*ex
dialog "test"
end

ウインドウ制御命令の他の命令

Meteoric Streamについて

管理人

Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> PALHSPマニュアル -> ウインドウ制御命令 -> ウインドウ/オブジェクトにメッセージを送信(非同期処理)