Windowsプログラムを10倍強力に作る

Windowsプログラムを10倍強力に作る
目次


C/C++コンパイラについて …… 9
付属ディスクについて …… 9
本文表記について …… 10

第1部 Windowsプログラム移植と拡張 …… 11
第1章 プログラム移植 …… 12
  1. C++ を使おう
    C++はなぜ普及が遅れたか
    今やパソコンがコンピューターの王様
  2. C++の基本
    //注釈と宣言文だけでもとても便利
    多彩な関数引数表現
    オブジェクト指向
  3. Windowsプログラム移植の順序
    C++ はプログラマを信頼しない
  4. プログラミング言語のゆれ
    立派な規格があっても
    ポインタ変換のゆれ
  5. コロコロ変わるC++
  6. C++のココに注意

第2章 プログラム拡張 …… 21
  1. 使いやすい多機能関数を作るには
    引数は多すぎると使いにくい
    引数にひと工夫をして使いやすく
  2. 関数原型宣言の利点
  3. 可変個実引数の利点
  4. 既定引数の利点
    既定引数の制限
    既定引数の原理
    多重定義と既定引数
  5. 多重定義の利点
  6. テンプレートの利点
  7. テンプレート引数と既定引数の複合

第3章 どうトラブルを解決するか …… 38
  1. Windows との付き合い方
    OS の不安定さ
    システムの落とし穴を避けて通る
    なぜWindowsは不安定か
    構造化設計されていないWindows
    自作のソフトはもっとスマートに
  2. パソコンとの付き合い方
    パソコンの寿命が短い 2年近く経つとハード・ディスクは危険期に
    ソフトの寿命も短い
  3. プログラムの挙動をどう調べるか
    システム・モニターの使い方
    グラフでプログラムの挙動を観察
    注目すべき数値
  4. ライフワークでのプログラミング
    自分のプログラムをどう守るか
    世の中が変わっても適用できるプログラミング手法

第2部 C++によるWindows拡張プログラミング …… 47
基本から拡張へ
関数名とファイル名の問題
関数定義ファイル名が変更された関数
ソース・レベル・リンク・システムによるプログラムの部品化
ソース・レベル・リンク・システムの方法
ソ ース・レベル・リンク・システムの構築
プログラム例のコンパイル方法
ソース・レベル・リンク・システムの良さ

第1章 ウィンドウ初期化 …… 53
ウィンドウを開き保持する 画面初期化関数 screen_int
ウィンドウを開く グラフィックス初期化関数 gint
ウィンドウを保持する グラフィックス終了関数 gend
画像を記憶する グラフィックス記憶関数 gmemory
マルチウィンドウを実現する ウィンドウクラス型 window_t
ウィンドウを選択する ウィンドウ選択関数 select_window

第2章 色管理 …… 90
実数で 3原色を管理する 3原色型 rgb_t
整数で 3原色を管理する 24bit 3原色型 trgb_t
3原色を管理する 3原色関数 rgb
色相明度彩度で色を指定する HLS関数 hls
色相彩度明度で色を指定する HSL関数 hsl
rgb_tをCOLORREFに変換する rgb_t→COLORREF関数 rgb_crf
COLORREFをrgb_tに変換する COLORREF→rgb_t関数 crf_rgb
様々な色データをCOLORREFに変換する 汎用COLORREF変換関数 toCOLORREF
色番号のモードを設定する 色番号モード設定関数 color_mode_set
色番号をフルカラー値に変換する 色番号フルカラー変換関数 cnum_crf
フルカラー値から色番号に変換する フルカラー色番号変換関数 crf_cnum

第3章 ウィンドウ支援 …… 116
MS-DOSウィンドウを切り放す コマンドウィンドウ切放クラス free_command_window
ウィンドウを点滅させる ウィンドウ点滅関数 flash_window
ウィンドウを移動する ウィンドウ移動関数 move_window
ウィンドウのサイズを変更する ウィンドウサイズ関数 size_window
画面表示設定を切り替える 画面表示設定関数 gdisp

第4章 ウィンドウ・サイズ情報 …… 129
最大画面のXサイズを調べる 最大画面Xサイズ関数 get_max_screen_x
最大画面のYサイズを調べる 最大画面Yサイズ関数 get_max_screen_y
ウィンドウのXサイズを調べる ウィンドウXサイズ関数 getwinx
ウィンドウのYサイズを調べる ウィンドウYサイズ関数 getwiny
現在画面のXサイズを調べる 現在画面Xサイズ関数 getscreenx
現在画面のYサイズを調べる 現在画面Yサイズ関数 getscreeny
X軸Y軸最大値を調べる X軸Y軸最大値マクロ XMAX, YMAX
X軸Y軸中心値を調べる X軸Y軸中心値マクロ CX, CY
ウィンドウのX位置を調べる ウィンドウX位置関数 get_window_pos_x
ウィンドウのY位置を調べる ウィンドウY位置関数 get_window_pos_y

第5章 画面管理 …… 141
描画モードを設定する 描画モード設定関数 pset_mode_set
描画領域を限定する 描画領域限定関数 view
解像度の向上を実現する 基本画面設定関数 base_screen
画面を背景色で消去する 画面消去関数 gcls
限定描画領域のみを消去する 限定描画領域消去関数 vgcls

第6章 描画 …… 150
ウィンドウにフルカラーの点を打つ 点関数 pset
排他的論理和で点を打つ 論理差点関数 psetXOR
論理和で点を打つ 論理和点関数 psetOR
座標点の色を読み出す 色読出関数 point
ウィンドウに直線や点線を引く 線関数 line
排他的論理和で直線を引く 論理差線関数 lineXOR
様々な線で長方形を描く 長方形関数 rectangle
排他的論理和で長方形を描く 論理差長方形関数 rectangleXOR
長方形の範囲を塗り潰す 長方形塗潰関数 rectfill
長方形を排他的論理和で塗り潰す 論理差長方形塗潰関数 rectfillXOR
角が丸い長方形を描く 丸角長方形関数 rrectangle
ウィンドウに円を描く 円関数 circle
ウィンドウに楕円を描く 楕円関数 ellipse
境界色の範囲に塗装色で色を塗る 塗装関数 paint
様々な書体で文字列を拡大表示する 文字列拡大関数 symbol

第7章 画像ファイル …… 189
画像ファイル関数の返却値を管理する 画像ファイル関数返却値型 ifr_t
画像ファイルのエラーメッセージを得る 画像ファイルエラー文字列関数 strifr
2バイトを左低位/右高位で書出 ファイル2バイト低高書出関数 fputc2lh
2バイトを左低位/右高位で読込 ファイル2バイト低高読込関数 fgetc2lh
4バイトを左低位/右高位で書出 ファイル4バイト低高書出関数 fputc4lh
4バイトを左低位/右高位で読込 ファイル4バイト低高読込関数 fgetc4lh
BMPファイルのヘッダを書き出す BMPヘッダ書出関数 put_header_bmp
BMPファイルのヘッダを読み込む BMPヘッダ読込関数 get_header_bmp
BMPファイルのパレット読込 BMPパレット読込関数 get_palette_bmp
フルカラー画像をファイルに保存する 24bit BMP画像ファイル保存関数 save_bmp24
24bitBMP画像ファイル内容表示 24bit BMP画像ファイル表示関数 load_bmp24
8bitBMP画像ファイル内容表示 8bit BMP画像ファイル表示関数 load_bmp8
BMP画像ファイルの内容を表示 BMP画像ファイル表示関数 load_bmp

第8章 キー入力と時間待ち …… 220
1文字入力待ちをする 1文字入力待関数 getkey
入力待ちにならないキー読み取り キー読取関数 keyread
一定時間プログラムを停止させる 時間待関数 wait
画面を保存し時間待ちをする 画面保存時間待関数 gwait

第9章 マウス …… 228
マウス・カーソル位置を調べる マウスカーソル位置読込関数 ms_getpos
マウス・カーソル位置を設定する マウスカーソル位置設定関数 ms_setpos
マウス・ボタンの押下状態を調べる マウスボタン関数 ms_button
マウス左ボタン押下状態を調べる マウス左ボタン押下情報関数 ms_left_down
マウス右ボタン押下状態を調べる マウス右ボタン押下情報関数 ms_right_down
マウス左ボタン解放状態を調べる マウス左ボタン解放情報関数 ms_left_up
マウス右ボタン解放状態を調べる マウス右ボタン解放情報関数 ms_right_up

索 引 …… 217


姉妹編『Windowsプログラムを10倍簡単に作る[95/98/NT対応C言語版]』目次