{{include unfinished_page}} ,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[8章 オーバーレイプログラムの作成|8章 オーバーレイプログラムの作成]] ,{BSIZE:0|RIGHT}[[10章 MSXView標準データ]] →  この章では、MSXView基本データ構造について説明します。 !!9.1 1バイト型の別名定義と定数名  1バイト型の別名定義と定数名は、次のように定義されています。 #define TINY char /* 0〜255を表す数値型 */ #define BOOL char /* 論理型 */ #define TRUE 1 /* (~FALSE)ではなく(!FALSE) */ #define FALSE 0 /* C言語の論理式の値に対応 */ #define STATUS char /* 成功・失敗型 */ #define OK 0 #define ERROR 0xff #define HANDLE char /* ハンドル型 */ #define NEW (char)0 /* 新規ハンドルの割り当て要求 */ #define ROOTBD 1 /* ルートボード */ #define SYSPEN 1 /* 標準ペン */ #define BDPEN 2 /* ルートボードのペン */ #define SYSFONT 1 /* 標準フォント */ #define COLOR char !!9.2 基本的な構造体  画面表示で使用する構造体は、以下のように宣言されています。 typedef struct _pos { /* 座標の指定に使用(主に画面座標) */ int xp; /*  負の座標はウィンドウ外なので、 */ int yp; /*  表示されないが論理的には有効 */ } POS; typedef struct _area { /* POS+領域サイズ */ int xp; /*  本質的にはPOSだが、この方が */ int yp; /*  初期化をシンプルに書ける。 */ unsigned xs; /*  サイズは非負なので論理的だが */ unsigned ys; /*  計算時の型変換には要注意。 */ } AREA; !!9.3 ディスプレイマネージャの構造体  ディスプレイマネージャで使用する構造体は、以下のように宣言されています。 typedef struct _win { /* ウィンドウの状態 */ HANDLE block; /* ビットブロック(FIXなら0) */ TINY status; /* ウィンドウスタイル+ウィンドウの種類 */ AREA area; /* グローバル座標 */ HANDLE defpen; /* デフォルトペン */ HANDLE deffont; /* デフォルトフォント */ HANDLE curpen; /* カレントペン */ HANDLE curfont; /* カレントフォント */ } WIN; !!9.3.1 ウィンドウスタイルの定数  ウィンドウの形状を指定する構造体は、以下のように定義されています。 #define FIX (char)128 /* ビットブロックなし */ #define TWIN (char)0 /* なにもなし */ #define CWIN (char)1 /* 枠なし */ #define FWIN (char)2 /* 一重枠 */ #define RWIN (char)3 /* 角の丸い一重枠 */ #define IWIN (char)4 /* インデックス枠 */ #define SWIN (char)5 /* 影付き一重枠 */ #define BWIN (char)6 /* 影付き二重枠 */ !!9.4 ビットブロックマネージャの構造体  ビットブロックマネージャで使用する構造体は、以下のように宣言されています。 typedef struct _blcinfo { TINY lotnum; /* ロット番号 */ LONG start; /* VRAMポインタ */ LONG length; /* ブロックデータの長さ */ WORD xs; /* 横方向の大きさ */ WORD ys; /* 縦方向の大きさ */ } BLCINFO; !!9.5 イベントマネージャの構造体  イベントマネージャで使用する構造体は、以下のように宣言されています。 !9.5.1 イベントの定数  イベントの種類を指定する定数は、次のように定義されています。 #define KEYEVT 1 /* キーが押された */ #define TRIGDN 2 /* 1stボタンが押された */ #define TRIGUP 3 /* 1stボタンが離された */ #define ABORT 4 /* 2ndボタンが押された */ #define ABORTUP 5 /* 2ndボタンが離された */ #define KANJI 6 /* 予約 */ !9.5.2 ウィンカの構造体  ウィンカの状態を表す構造体は、以下のように宣言されています。 !9.5.3 キーボードの構造体  キーボードの状態を表す構造体は、以下のように宣言されています。 !9.5.4 マウスカーソルの構造体  マウスカーソルの状態を表す構造体は、以下のように宣言されています。 !!9.6 グラフパックの構造体  グラフパックで使用する構造体は、以下のように宣言されています。 #define ONDOT (char)32 /* onドット有効 */ #define OFFDOT (char)16 /* offドット有効 */ !!9.7 フォントパックの構造体  フォントパックの構造体は、以下のように宣言されています。 !!9.8 テキストマネージャの構造体  テキストマネージャの構造体は、以下のように宣言されています。 !!9.9 メニューマネージャの構造体  メニューマネージャの構造体は、以下のように宣言されています。 !9.9.1 POPUP.headおよびMENU.headに設定する定数  POPUP.headおよびMENU.headに設定する定数は、次のように定義されています。 #define CHK (char)128 /* チェックマーク */ #define MSK (char)64 /* 表示、選択禁止 */ #define DIS (char)32 /* 選択禁止 */ #define LIN (char)16 /* 線(選択禁止) */ #define CEN (char)8 /* センタリング */ #define BLD (char)4 /* 太字 */ #define CNT (char)2 /* 改行せずに継続する */ #define FIN (char)1 /* 終了(最後の要素である印) */ #define NON (char)0 /* 何も指定しない場合 */ !!9.10 コントロールマネージャの構造体  コントロールマネージャの構造体は、以下のように宣言されています。 !9.10.1 標準コントロール番号の定数  標準コントロール番号は、次のように定義されています。 !9.10.2 コントロールのパート番号の定数  コントロールのパート番号は、次のように定義されています。 !9.10.3 コントロールメッセージへのキャスト用マクロ  コントロールメッセージへのキャスト用マクロは、次のように定義されています。 !9.10.4 コントロールドライバのバリエーション番号  コントロールドライバのバリエーション番号は、次のように定義されています。 !!9.11 プリンタドライバの構造体  プリンタドライバの構造体は、以下のように宣言されています。 !9.11.1 プリンタドライバの機能コード  プリンタドライバの機能コードは、次のように定義されています。 #define PD_INIT 0 /* プリンタドライバの初期化 */ #define PD_OPEN 1 /* プリンタの印刷開始宣言 */ #define PD_CLOSE 2 /* プリンタの印刷終了宣言 */ #define PD_PRINT 3 /* 印刷の実行 */ #define PD_MENU 4 /* 用紙の設定 */ #define PD_START 5 /* 開始・終了ページ、印刷枚数の設定 */ #define PD_PAGE 6 /* 印刷開始メッセージの表示 */ !!9.12 その他の構造体  その他の構造体は、以下のように宣言されています。 !9.12.1 オーバーレイで使用する構造体  オーバーレイで使用する構造体は、次のように宣言されています。 !9.12.2 モジュール名の宣言  コントロールドライバのバリエーション番号は、次のように定義されています。 !9.12.3 日付を表す構造体  日付を表す構造体は、次のように宣言されています。 typedef struct _date { int year; /* 1980〜2079 */ TINY month; /* 1〜12 */ TINY date; /* 1〜31 */ TINY week; /* 0=日曜、…6=土曜 */ } DATE; !9.12.4 時間を表す構造体  時間を表す構造体は、次のように宣言されています。 typedef struct _time { TINY hour; /* 0〜23 */ TINY minute; /* 0〜59 */ TINY second; /* 0〜59 */ TINY sec100; /* システム予約 */ } TIME; !9.12.5 MSX-DOSのDPBを表す構造体  MSX-DOSのDPBを表す構造体は、次のように宣言されています。 !9.12.6 MSX-DOSのFCPを表す構造体  MSX-DOSのFCPを表す構造体は、次のように宣言されています。 ,{t},{BSIZE:1 0|SIZE:100%} ,{BSIZE:0}←[[8章 オーバーレイプログラムの作成|8章 オーバーレイプログラムの作成]] ,{BSIZE:0|RIGHT}[[10章 MSXView標準データ]] →