Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> HSP2 -> HSP2.xでMDIウインドウを作成するサンプルコード

HSP2.xでMDIウインドウを作成するサンプルコード

Hot Soup Processor 2.x系でのMDIウインドウを作成するためのサンプルコードです。
loadlibとllmodが必要になります。

WINAPIのSetParent関数を呼び出し、任意のウインドウに、強引に親ウインドウを設定しています。(^^;

SetParent関数の説明に関しては、MicroSoft社のMSDNライブラリや、LCC-Win32のAPIマニュアル等で調べると良いでしょう。

かなーり昔に作ったソースですが、需要があればHSP3用に書き直します。
・・・いや、需要無いな(笑)
; モジュールの定義 #module #include "loadlib.as" ; ●書式 ; SetMDI p1, p2 ; p1 = 0〜(0) : 親に設定したいウインドウのID ; p2 = 0〜(0) : 子に設定したいウインドウのID ; ●説明 ; 指定したウインドウに対して、MDIの設定を行います。 ; 必ず、screen, bgscr, buffer等で ; 作成済みのウインドウのIDを指定する事。 ; #deffunc SetMDI int, int mref p1, 0 mref p2, 1 ; USER32.DLLをロードする ll_libload dll, "USER32.DLL" ; GetActiveWindow関数、 ; SetParent関数をロードする ll_getproc getwnd, "GetActiveWindow", dll ll_getproc setparent, "SetParent", dll ; 子にしたいウインドウのハンドルを取得 gsel p2, 1 ll_callfnv getwnd ll_ret hwnd ; 親にしたいウインドウのハンドルを取得 gsel p1, 1 ll_callfnv getwnd ll_ret hwnd.1 ; MDI設定 if hwnd != hwnd.1{ ; ←安全処理 ll_callfunc hwnd, 2, setparent } ; DLLの解放 ll_libfree dll return #global ; ウインドウの作成 screen 0, 640, 480 screen 2, 400, 300 screen 3, 200, 100 ; MDIの設定 SetMDI 0, 2 SetMDI 0, 3 ; 適当に描画 gsel 2 : title "ID = 2" : cls 4 gsel 3 : title "ID = 3" : cls 4 gsel 0, 1 : title "ID = 0" : cls 3 stop

この記事の最終更新日:2017/10/30
最初に記事を書いた日:2017/10/30

この記事をシェアする

このエントリーをはてなブックマークに追加

関連記事

資料室のトップに戻る
Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> HSP2 -> HSP2.xでMDIウインドウを作成するサンプルコード
▲Top English