BMSCR

HSPが管理しているウィンドウのさまざまな情報が格納されます。この構造体のデータは、mref命令を用いて取得することができます。

#define objkazz 64

typedef struct BMSCR
{
    //      Bitmap buffer structure
    //
    int     flag;           // used flag
    int     sx;             // X-size
    int     sy;             // Y-size
    int     palmode;        // palmode
    HDC     hdc;            // buffer HDC
    BYTE    *pBit;          // bitmap pointer
    BITMAPINFOHEADER *pbi;  // infoheader
    HBITMAP dib;            // bitmap handle(DIB)
    HBITMAP old;            // bitmap handle(OLD)
    RGBQUAD *pal;           // palette table
    HPALETTE hpal;          // palette handle
    HPALETTE holdpal;       // palette handle (old)
    int     pals;           // palette entries
    HWND    hwnd;           // window handle
    HANDLE  hInst;          // Instance of program
    int     infsize;        // *pbi alloc memory size
    int     bmpsize;        // *pBit alloc memory size

    //      Window object setting
    //
    int     type;           // setting type
    int     wid;            // window ID
    short   fl_dispw;       // display window flag
    short   fl_udraw;       // update draw window
    int     wx,wy,wchg;     // actual window size x,y
    int     xx,yy;          // buffer view point x,y
    int     lx,ly;          // buffer view size x,y
    int     cx,cy;          // object cursor x,y
    int     ox,oy,py;       // object size x,y,py
    int     texty;          // text Y-axis size
    int     gx,gy,gmode;    // gcopy size

    HBRUSH  hbr;            // BRUSH handle
    HPEN    hpn;            // PEN handle
    HFONT   hfont;          // FONT handle
    HFONT   holdfon;        // FONT handle (old)
    COLORREF color;         // text color code

    HANDLE  hCld[objkazz];  // buttonのhandle
    int     owid[objkazz];  // buttonのjump ID
    int     owb;            // handleのindex

    int     textspeed;      // slow text speed
    int     cx2,cy2;        // slow text cursor x,y
    int     tex,tey;        // slow text limit x,y
    char    *prtmes;        // slow message ptr

} BMSCR;

メンバ

flag

BMSCR構造体が管理する画面が使用されているかどうかのフラグです。1 (TRUE) なら初期化済み、0 (FLASE) なら初期化されていません。

sx, sy

初期化した画面のサイズです。

palmode

ウィンドウがパレットモードかどうかを示す値が格納されます。1ならパレットモード、0ならフルカラーモードであることを示します。

hdc

画面のデバイスコンテキストが格納されています。このハンドルを使って GDI 関数で画面に描画することが可能です。注意しなければならないのは、これはメモリ上のビットマップへのデバイスコンテキストだということです。ここに描画をしても、実際のウインドゥ画面上では何の変化も起こりません。実際のウインドゥ画面に変更を反映させるためには、HSPのredraw命令などを使用して再描画を行なうか、GetDC命令で実際のウインドゥへのデバイスコンテキストを取得して描画する必要があります。

pBit

画面のビットマップデータが格納されているメモリブロックの先頭アドレスです。このポインタを使って直接、画面にデータを書き込むことが可能です。

pbi

画面データを管理するビットマップについての情報が格納されたBITMAPINFOHEADER 構造体へポインタです。

dib

画面データを管理するビットマップ(DIB)のハンドルです。

old

内部で使用されます。このメンバを参照してはいけません。

pal

パレットテーブルへのポインタです。

hpal

パレットハンドルです。

holdpal

内部で使用されます。このメンバを参照してはいけません。

pals

パレットエントリです。

hwnd

画面のウィンドウハンドルです。

hInst

ウインドゥを管理するプログラムのインスタンスハンドルです。

infsize

pbi メンバ指すメモリ使用量を示すワークです。

bmpsize

pBit メンバ指すメモリ使用量を示すワークです。

type

画面の属性を示します。以下の値のいずれかになります。

1
オフスクリーンバッファ
2
バックグラウンドイメージ
3
HSPメインウィンドウ(固定サイズ)
4
標準ウィンドウ(固定サイズ)
5
ピクチャーウィンドウ
6
特殊ウィンドウ
7
スクリーンセーバーのプレビューウィンドウ
wid

ウィンドウIDを示します。

fl_dispw

画面がウインドゥとして表示されているかどうかを示すフラグです。

fl_udraw

画面の更新が必要かどうかを示すフラグです。

wx, wy

スクロールバーによってスクロールが可能なウインドゥでの表示ウインドゥサイズです。

wchg

??

xx, yy

転送元の座標です。

lx, ly

スクロールバーによってスクロールが可能なウインドゥで画面内から転送する場合の転送するイメージサイズです。

cx, cy

カレントポジションを示します。

ox, oy

objsize命令で指定されているオブジェクトの大きさを示します。

py

カレントポジションをY方向へ増加する際のドット数になります。

texty

現在選択されている文字フォントのY方向のサイズを示します。

gx, gy

gmode命令で指定した画面コピー時のサイズを示します。

gmode

gmode命令で指定した画面コピー時のモードを示します。

hbr

color命令で指定した色によるブラシを示すオブジェクトのハンドルです。

hpn

color命令で指定した色によるペンを示すオブジェクトのハンドルです。

color

color命令で指定した色データを示します。

hCld

画面上に配置するHSPのオブジェクト(ボタンや入力ボックスなど) のハンドルです。

owid

画面上に配置するHSPのオブジェクト(ボタンや入力ボックスなど) の各種情報が格納されます。

owb

現在表示されているHSPのオブジェクトの個数を示します。

textspeed

text命令で指定したテキストの表示スピードを示します。

cx2, cy2, tex, tey, prtmes

ゆっくりと文字列を表示する際に内部で使用されるデータが格納されます。

変数との対応

HSP変数 メンバ
メンバ名 オフセット サイズ
bmscr.0 flag 0 4
bmscr.1 sx 4 4
bmscr.2 sy 8 4
bmscr.3 palmode 12 4
bmscr.4 hdc 16 4
bmscr.5 pBit 20 4
bmscr.6 pbi 24 4
bmscr.7 dib 28 4
bmscr.8 old 32 4
bmscr.9 pal 36 4
bmscr.10 hpal 40 4
bmscr.11 holdpal 44 4
bmscr.12 pals 48 4
bmscr.13 hwnd 52 4
bmscr.14 hInst 56 4
bmscr.15 infsize 60 4
bmscr.16 bmpsize 64 4
bmscr.17 type 68 4
bmscr.18 wid 72 4
bmscr.19 fl_dispw 76 2
fl_udraw 78 2
bmscr.20 wx 80 4
bmscr.21 wy 84 4
bmscr.22 wchg 88 4
bmscr.23 xx 92 4
bmscr.24 yy 96 4
bmscr.25 lx 100 4
bmscr.26 ly 104 4
bmscr.27 cx 108 4
bmscr.28 cy 112 4
bmscr.29 ox 116 4
bmscr.30 oy 120 4
bmscr.31 py 124 4
bmscr.32 texty 128 4
bmscr.33 gx 132 4
bmscr.34 gy 136 4
bmscr.35 gmode 140 4
bmscr.36 hbr 144 4
bmscr.37 hpn 148 4
bmscr.38 hfont 152 4
bmscr.39 holdfon 156 4
bmscr.40 color 160 4
bmscr.41 hCld[0] 164 4
bmscr.104 hCld[63] 416 4
bmscr.105 owid[0] 420 4
bmscr.168 owid[63] 672 4
bmscr.169 owb 676 4
bmscr.170 textspeed 680 4
bmscr.171 cx2 684 4
bmscr.172 cy2 688 4
bmscr.173 tex 692 4
bmscr.174 tey 696 4
bmscr.175 prtmes 700 4