19章でウィンドウの新規生成(初期化)、タイトルテキストの変更、位置・サイズの変更を行いました。 この章では、まだ紹介していないウィンドウ操作やシステム操作の命令を紹介します。 命令ではありませんが、ウィンドウ・ディスプレイサイズを取得するマクロを紹介しました。 ginfo_winxマクロやginfo_dispyマクロ等のことです。 この章ではまずはじめに、このマクロの実体である命令を紹介しましょう。
| 取得情報 = ginfo(取得タイプ) | |||
| 取得情報 | 取得した情報の代入先。 | ||
| 取得タイプ | 取得したいウィンドウ関連情報の番号(後述)を指定する。 | ||
| 番号 | マクロ名 | 内容 |
| 0 | ginfo_mx | ディスプレイ左上を基点としたマウスカーソルのX座標を取得する。 |
| 1 | ginfo_my | ディスプレイ左上を基点としたマウスカーソルのY座標を取得する。 |
| 2 | ginfo_act | アクティブなHSPウィンドウのウィンドウIDを取得する。 |
| 3 | ginfo_sel | 操作対象のgsel命令で指定されたウィンドウIDを取得する。 |
| 4 | ginfo_wx1 | ディスプレイ左上を基点としたウィンドウ左上X座標を取得する。 |
| 5 | ginfo_wy1 | ディスプレイ左上を基点としたウィンドウ左上Y座標を取得する。 |
| 6 | ginfo_wx2 | ディスプレイ左上を基点としたウィンドウ右下X座標を取得する。 |
| 7 | ginfo_wy2 | ディスプレイ左上を基点としたウィンドウ右下Y座標を取得する。 |
| 8 | ginfo_vx | ウィンドウ内がどれだけスクロールされたかを示す描画基点X座標を取得する。 |
| 9 | ginfo_vy | ウィンドウ内がどれだけスクロールされたかを示す描画基点Y座標を取得する。 |
| 10 | ginfo_sizex | タイトルバーやウィンドウ枠も含んだウィンドウ全体のXサイズを取得する。 |
| 11 | ginfo_sizey | タイトルバーやウィンドウ枠も含んだウィンドウ全体のYサイズを取得する。 |
| 12 | ginfo_winx | ウィンドウ内の描画Xサイズを取得する。 |
| 13 | ginfo_winy | ウィンドウ内の描画Yサイズを取得する。 |
| 14 | ginfo_mesx | メッセージの出力Xサイズを取得する。 |
| 15 | ginfo_mesy | メッセージの出力Yサイズを取得する。 |
| 16 | ginfo_r | 現在設定されている赤輝度を取得する。 |
| 17 | ginfo_g | 現在設定されている緑輝度を取得する。 |
| 18 | ginfo_b | 現在設定されている青輝度を取得する。 |
| 19 | ginfo_paluse | デスクトップのカラーモードがフルカラー(=0)か256色パレット(=1)かを取得する。 |
| 20 | ginfo_dispx | ディスプレイ全体のXサイズを取得する。 |
| 21 | ginfo_dispy | ディスプレイ全体のYサイズを取得する。 |
| 22 | ginfo_cx | HSPウィンドウ内のカレントXポジションを取得する。 |
| 23 | ginfo_cy | HSPウィンドウ内のカレントYポジションを取得する。 |
| 24 | ginfo_intid | メッセージ割り込みされたウィンドウのウィンドウIDを取得する。 |
| 25 | ginfo_newid | 未使用ウィンドウIDを取得する。(HSP3.2〜) |
| 26 | ginfo_sx | ウィンドウの初期化Xサイズを取得する。 |
| 27 | ginfo_sy | ウィンドウの初期化Yサイズを取得する。 |
1 2 3 4 5 6 7 8 9 10 11 |
wx = 800 : wy = 600 // ディスプレイサイズ(ginfo_dispx, ginfo_dispy)を取得し、中央に表示 screen 0,wx, wy, 1, (ginfo(20) - wx) / 2, (ginfo(21) - wy) / 2 // カラーモード(ginfo_paluse)を取得 if ginfo(19) { mes "カレントウィンドウはパレットモードです!" mes "最大で256色しか使用できません。" } else { mes "カレントウィンドウはフルカラーモードです。" mes "全ての色を使用することができます。" } |
| cls 背景色番号 | |||
| 背景色番号 | クリアする色番号(後述)を指定する。 | ||
| 色番号 | 色 | カラーコード |
| 0(省略) | 白 | 255, 255, 255 |
| 1 | 明るい灰色 | 192, 192, 192 |
| 2 | 灰色 | 128, 128, 128 |
| 3 | 暗い灰色 | 64, 64, 64 |
| 4 | 黒 | 0, 0, 0 |
1 2 3 4 5 6 7 8 9 |
repeat 200, 1 wait 1 redraw // チラつき防止? cls // 白色でクリア color 255 : boxf 50, 50, cnt * 2 + 50, 80 // プログレスバーを表示 redraw 1 loop color pos 50, 100 : mes "終了" |
| chgdisp モード, 横幅, 高さ | |||
| モード | 変更モード(0:元に戻す 1:フルカラーモード 2:パレットモード)を指定する。 | ||
| 横幅 | X方向の解像度を指定する。 | ||
| 高さ | Y方向の解像度を指定する。 | ||
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
rate = 4, 3 // 比率 size = 256, 200, 160, 100 // 設定サイズ txt = "" foreach size if txt ! "" : txt += "\n" txt += "" + (size.cnt * rate.0) +"×" + (size.cnt * rate.1) // コンボボックステキスト loop objsize 100, 25 pos 10, 10 : mes "変更サイズ" pos 100, 10 : combox index, 100, txt objsize 40, 25 pos 210, 10 : button "変更", *change stop *change chgdisp 1, size.index * rate.0, size.index * rate.1 // 解像度を変更する if stat : dialog "正常に変更完了できませんでした", 1 stop |
| sysfont フォント番号 | |||
| フォント番号 | 後述のフォント番号を指定する。 | ||
| 番号 | 内容 |
| 0 | HSP起動時に使用されているobjmode命令のモード0と同じフォント。 |
| 10 | OEMキャラクタの固定幅フォント。 |
| 11 | Windows文字セットの固定幅システムフォント。 |
| 12 | Windows文字セットの可変幅システムフォント。 |
| 13 | 標準システムフォント。 |
| 17 | objmode命令のモード1と同じGUIフォント。 |
1 2 3 4 5 |
mes "[HSPデフォルトフォント]で使用する。" font msmincho, 16 mes "[MS 明朝を使用する。" sysfont // 元のフォントを指定 mes "[HSPデフォルトフォント]に戻す。" |
| sysinfo タイプ | |||
| タイプ | 取得タイプ番号(後述)を指定する。 | ||
| 番号 | 内容 |
| 0 | 現在のOS名・バージョン「OS verX.X」と言った形式を取得します。 |
| 1 | 現在のログインユーザー名を取得します。 |
| 2 | ネットワーク上において識別するためのコンピュータ名を取得します。 |
| 16 | CPUコードを取得します。 |
| 33 | %単位で物理メモリの使用サイズを取得します。 |
| 34 | バイト単位で搭載メモリサイズを取得します。 |
| 35 | バイト単位で空きメモリサイズを取得します。 |
| 36 | バイト単位で総スワップファイルサイズを取得します。 |
| 37 | バイト単位で空きスワップファイルサイズを取得します。 |
| 38 | バイト単位で仮想メモリを含めたメモリサイズを取得します。 |
| 39 | バイト単位で仮想メモリを含めた空きメモリサイズを取得します。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
title "システム一覧" pos 10, 10 : mes "OS、バージョン" pos 280, 10 : mes sysinfo(0) pos 10, 40 : mes "ログインユーザー" pos 280, 40 : mes sysinfo(1) pos 10, 70 : mes "コンピュータ名" pos 280, 70 : mes sysinfo(2) pos 10, 100 : mes "CPUの種類" pos 280, 100 : mes sysinfo(16) pos 10, 130 : mes "物理メモリ使用量" pos 280, 130 : mes "" + sysinfo(33) + "%" pos 10, 160 : mes "メモリサイズ" pos 280, 160 : mes "" + (sysinfo(34) / 1048576) + "MB" pos 10, 190 : mes "空きメモリサイズ" pos 280, 190 : mes "" + (sysinfo(35) / 1048576) + "MB" pos 10, 220 : mes "スワップファイルサイズ" pos 280, 220 : mes "" + (sysinfo(36) / 1048576) + "MB" pos 10, 250 : mes "空きスワップファイルサイズ" pos 280, 250 : mes "" + (sysinfo(37) / 1048576) + "MB" pos 10, 280 : mes "メモリサイズ(仮想込)" pos 280, 280 : mes "" + (sysinfo(38) / 1048576) + "MB" pos 10, 310 : mes "空きメモリサイズ(仮想込)" pos 280, 310 : mes "" + (sysinfo(39) / 1048576) + "MB" |