超初心者のC言語(Windows)

前田稔(Maeda Minoru)の超初心者のプログラム入門(C言語 Windows)のページへようこそ。
(Maeda Minoru webpage is written about VC++ Windows Game Programing tutorial.)
ウインドウズ・プログラムの基礎の基礎からゲームプログラムまで解説しています。\(^o^)/
プログラムは特に断りの無い限り MultiByte で作成しています。
最近では規定値が Unicode になっているので注意して下さい。

2015/10 には Windows10 が発表され開発環境が大きく変わってきています。
Windows10(ストアアプリ)の Windows Program は 超初心者のプログラム入門(C/C++) から C++ Windows10(Store App) などを参照して下さい。

前田稔(Maeda Minoru)の超初心者のプログラム入門

Windows Program Index

Programming Guide

Visual C++ プロジェクトの作成

    Visual C++ .net のプロジェクトを作成する

  1. Win32 コンソールモード
    Visual C++ .net で従来の MS/DOS と同様のプログラムを作成します。
  2. Windows プログラムを自動的に作成
    Visual C++ .net のテンプレート機能を使って Windows のプログラムを自動的に作成します。
  3. Visual C++ Ver 6.0 のプロジェクトを開く
    過去に作成した Visual C++ 6.0 で作成したプロジェクトを .net で開きます。

    Visual C++ Ver 6.0 のプロジェクトを作成する

  4. Ver 6.0 でコンソールアプリケーションを作成
    Visual C++ Ver 6.0 で従来の MS/DOS と同様のプログラムを作成します。
  5. Ver 6.0 で Windows プログラムを作成する
    Visual C++ Ver 6.0 のテンプレート機能を使って自動的にプログラムを作成します。
    また Visual C++ Ver 6.0 に備わっているソースエディタの便利な使い方も紹介します。

Windows Program 入門

    ウインドウの表示

  1. Message Box を表示する
    VC++ で Message Box を表示する最も簡単なプログラムです。
  2. Hello Window! を画面に表示する
    VC++ のテンプレートでプロジェクトを作成して TextOut() で文字列を表示します。
  3. 文字に色を付けて画面に表示する
    VC++ で SetTextColor() と SetBkColor() で文字の色を設定します。
  4. DrawText で文字列を表示する
    VC++ で DrawText を使って文字列を整形して表示します。
  5. プログラムの終了を確認する
    事務処理などでは、プログラムの終了前に確認を行うのが常識です。
  6. 自分専用のアイコンを使用する
    VC++ で自分専用のアイコンを作成してプログラムで使用します。

    描画の基礎

  7. 点のつなげて線を描画する
    VC++ で for ループの中で SetPixel() でドットを並べて描画します。
  8. Lineto() で直線を描画する
    VC++ の MoveToEx() と LineTo() 関数で直線を描画します。
  9. Rectangle() で矩形を描く
    VC++ の CreateSolidBrush() でブラシを設定して Rectangle() で矩形(長方形)を描きます。
    ★ストックオブジェクトの説明です。
  10. 矩形で国旗を描く
    VC++ でブラシを設定して Rectangle() で矩形を組み合わせた国旗を描画します。
    ★CreateWindow() でウインドウの色やサイズを国旗に合わせて設定します。
  11. Ellipse() で円と楕円を描画する
    VC++ で Ellipse() で円(楕円)を使った国旗を描画します。
  12. Polyline() で三角形、四角形、五角形を描く
    VC++ の Polyline() で直線をつないで「三角形、四角形、五角形」を描きます。
  13. Ellipse() の繰り返しで模様を描画する
    VC++ の rand(乱数)関数を使って、色を変えながら円を重ねて綺麗な模様を描きます。
  14. 色を変えながら矩形を描画する
    二重のループの中で20回ごとに色を変えながら VC++ の SetPixel を使って矩形を描画します。
  15. ドットを並べて三角形を描画する
    二重のループの中で VC++ の SetPixel() でドットを並べて三角形を描画します。
    二重ループの演習です。しっかり繰り返し処理を身に付けて下さい。
  16. プレゼンハムで円を描画する
    乗除算を一切使わずに単純な加減算だけで円を描画するアルゴリズムです。
  17. 螺旋模様を線で描きます
    VC++ で MoveToEx() と LineTo() の繰り返しで、矩形の螺旋模様を描きます。
  18. 螺旋模様をドットで描きます
    VC++ で SetPixel(点の描画)を使って矩形の螺旋模様を描きます。
  19. 5本の線で星の形を描きます
    正5角形の回転座標を求めて、5本の線で星の形を描きます。
  20. 座標を回転しながら星を描きます
    回転関数を使って VC++ の Polygon() 関数の座標を設定して星を描きます。
  21. ドラエモンを描きます
    VC++ の図形描画の関数を使って、面白いキャラクタを描きます。

    MOUSE & KEY の基礎

  22. マウスの左クリックを検出する
    VC++ の WM_LBUTTONDOWN: でマウスの左クリックを検出して、座標を TextOut() で表示します。
    ★InvalidateRect() と UpdateWindow() で画面を再描画します。
  23. F12 & ESC キーでプログラムを終了する
    VC++ の WM_KEYDOWN: で F12 と ESC キーを検出してプログラムを終了します。
    ついでにカーソルを非表示に設定してみました。
  24. ポストされてきたキーコードを表示する
    VC++ の WM_KEYDOWN: でポストされてきたキーコードを16進数で編集して表示します。

    Dialog Box の基礎

  25. Dialog Box のプログラム
    VC++ で WinMain() から DialogBox() を表示する最も簡単なプログラムです。
  26. タイトルバーに時刻を表示する
    VC++ の GetLocalTime() で時刻を取得して Dialog Box のタイトルバーに表示します。
    WindowsME などで Dialog Box の漢字が正常に表示されない現象が起こっています。
    ★タイマを使ったプログラムのサンプルです。
  27. EditControl を使ったデータ入力と表示
    VC++ の EditControl からデータを入力して、最大公約数と最小公倍数を計算して表示します。
    TEXT の設定は SetDlgItemText() を、取得は GetDlgItemText() を使います。
  28. List Box に名簿を表示する
    VC++ で List Box に名簿を表示して、Edit Box から新しくタイプされた名前を追加します。
    List Box への指示は SendMessage() で行います。
  29. Combo Box から選択して Edit Box で表示する
    VC++ で Combo Box から選択した都市名を Edit Box に表示します。
    Combo Box への指示は SendMessage() で行います。
  30. PictureControl に矩形を表示
    VC++ で Dialog Box に貼り付けた PictureControl に矩形を表示します。

    ユーザー定義関数の基礎

  31. 円を描画する関数を作成する
    VC++ でプレゼンハムで円を描画する関数を作成します。
  32. メニュー選択で国旗を切り替える
    VC++ で日本、オランダ、クウェートの国旗をメニュー選択で切り替えます。
  33. 座標の回転関数で星の形を描きます
    VC++ で座標の回転関数を使って正5角形の座標を求めて星の形を描きます。
  34. 素数の一覧を表示する
    VC++ でエラトステネスのふるいを使って 1000 以下の素数を求めて表示します。
  35. 文字フォントを設定して描画する
    ★VC++ でフォントの書体やサイズや傾きを設定して文字を描画します。

    ファイル操作の基礎

  36. TEXT ファイルを入力して画面に表示する
    VC++ の ReadFile() で TEXT 形式のファイルを入力して DrawText で画面に表示します。
    ★ファイル入力の基礎です。
  37. EditControl からタイプしたデータをファイルに書き出す
    VC++ の EditControl からタイプ入力したデータを WriteFile() でファイルに書き出します。
    ★ファイル出力の基礎です。
  38. ファイル(フォルダー)の属性を調べる
    VC++ でファイルの存在(エラー)をチェックする最も簡単な方法です。
  39. ファイルを削除する
    ファイル操作の基本として、VC++ の DeleteFile() でファイルを削除します。
  40. フォルダーを作成する
    VC++ の CreateDirectory() でフォルダーを作成します。
    ★ファイル関係/ディレクトリ関係の関数の説明です。
  41. ファイルサイズと作成日付を表示する
    VC++ でファイルサイズと作成日付を調べて文字形式に編集して表示します。
    GetFileTime() で FILETIME 構造体を取得して表示します。
  42. フォルダーのファイルを列挙する
    VC++ でフォルダーに格納されているファイルを FindFirstFile() と FindNextFile() で検索して表示します。
  43. フォルダーを空にして削除する
    VC++ でフォルダーの中を空にしてから、フォルダー自体を削除します。

    メニュー操作の基礎

  44. メニューを ON,OFF する
    VC++ で選択できないメニュー項目を OFF(薄い灰色) で表示します。
    GetMenu() でメニューを取得して EnableMenuItem() で設定します。
  45. ショートカットメニューを設定する
    VC++ でショートカットメニューを設定して、一発で国旗を表示します。
    リソースを作成して LoadAccelerators() で設定します。
  46. 右クリックメニューを設定する
    VC++ でマウスの右クリックで専用のメニューを表示して、国旗を切り替えます。
    LoadMenu(), GetSubMenu() でメニューを取得して TrackPopupMenu() で表示します。

    BMP 画像の基礎

  47. BMP ファイルの表示
    VC++ で BMP ファイルを入力して表示する基本プログラムです。
  48. BMP 画像を表示する
    VC++ でリソースとして取り込んだ BMP 画像を BitBlt() で表示します。
    StretchBlt() を使うと「縮小・拡大」して表示することもできます。
  49. BMP ファイルを表示する関数を定義
    VC++ の LoadImage() を使って BMP ファイルを表示する関数を定義します。
  50. BitMap(BMP)画像ファイル形式の説明書
    八城氏の作成による BMP(DIB) フォーマットの説明です。

    空のプロジェクトから作成する

  51. 空のプロジェクトからプログラムを作成する
    VC++ で空のプロジェクトを作成して、ソースコードを全て自前で作成してみましょう。
    ★Windows プログラムの制御の流れと、主要な関数及び HWND に付いて説明します。
  52. 終了メニューとアイコンを設定する
    VC++ で空のプロジェクトを作成して、終了メニューと自分専用のアイコンを設定します。
  53. ミリ秒単位の時刻を取得
    タイマ割り込みを使って timeGetTime() でミリ秒単位の時刻を取得します。
    ★出来るだけシンプルに作成したウインドウを表示するソースコードです。
  54. バージョン情報の DialogBox を表示する
    VC++ でバージョン情報のメニューを設定して、DialogBox を表示します。
  55. ICON を設定して BMP 画像を表示する
    VC++ で自分専用のアイコン設定と、 BMP 画像の表示です。
    Main.rc を直接タイプしてリソースを全て自前で作成します。
    TransparentBlt() で黒を透明色に設定して描画します。
  56. ProbressBar を貼り付けた DialogBox を表示する
    VC++ を使ってメニューの選択で ProbressBar を貼り付けた DialogBox を表示します。
    PbmBar.rc や resource.h を直接タイプしてリソースを全て自前で作成します。
  57. 描画をしながら Probress Bar を表示
    VC++ を使ってウインドウに図形を描画しながらモードレス Dialog Box に貼り付けた Probress Bar を動かします。
    空のプロジェクトから始めてリソースも全て自前で作成します。

    Audio(Sound) の基礎

  58. PlaySound() で WAVE を鳴らす
    VC++ の PlaySound() で WAVE を鳴らすだけなら簡単です。
  59. MCI で MIDI を演奏する
    VC++ の MCI(Media Control Interface) で MIDI を演奏する簡単なプログラムです。
  60. MCI で WAVE を演奏する
    VC++ の MCI(Media Control Interface) で WAVE を演奏する簡単なプログラムです。
  61. MIDI と WAVE のミキシング
    VC++ の MCI で MIDI(音楽) を演奏しながら WAVE(効果音) を鳴らします。
  62. MCI で WAVE を繰り返し演奏
    VC++ の mciSendString() に notify を指定すると、演奏の終了時に MM_MCINOTIFY: がポストされてきます。
  63. Audio CD を演奏する
    VC++ の MCI で Audio CD(音楽用CD) を演奏します。
  64. AVI File を再生する
    VC++ の MCI で AVI File(動画ファイル)を再生します。

    Registry の基礎

  65. レジストリの文字列を読む
    VC++ の RegQueryValueEx() でレジストリに登録されている文字列を入力します。
  66. サブキーを作成して、文字列を登録
    VC++ でレジストリにサブキーを新規作成して、RegSetValueEx() で文字列を登録します。
  67. DWORD の登録と読み出し
    VC++ の RegSetValueEx() でレジストリに DWORD のデータを登録をします。
    次に RegQueryValueEx() で登録されたデータを読み出して表示します。
  68. 登録されているエントリを列挙する
    VC++ の RegEnumValue() でレジストリに登録されているエントリを列挙します。
  69. エントリとその値を列挙する
    VC++ の RegEnumValue() でレジストリに登録されているエントリとデータタイプと値を列挙します。
  70. 記録ファイル(.INI)を使う
    VC++ の GetPrivateProfileString() で記録ファイル(.INI)のデータを読み出します。

    印字の基礎

  71. 印字をする
    VC++ の StartDoc(), StartPage() でプリンタに印字します。
  72. 処理の中断
    VC++ でモードレスダイログから実行中の処理を中断します。
  73. プリンタの設定
    VC++ の PrinterProperties() でプリンタ設定のウインドウを表示します。
  74. 図形の印字
    VC++ で線や矩形や円や楕円を印字します。

    Common Dialog の基礎

  75. 入力ファイルを選択する
    VC++ の GetOpenFileName() で TEXT ファイルを選択して表示します。
  76. BMP ファイルを選択する
    VC++ の GetOpenFileName() で BMP 画像を選択して描画します。
  77. 出力ファイルを選択する
    VC++ の GetSaveFileName() でファイルを選択して TEXT DATA を保存します。
  78. ブラシの色を選択する
    VC++ の ChooseColor() でブラシの色を選択して矩形を描画します。
  79. フォントを選択する
    VC++ の ChooseFont() でフォントと色を選択して TEXT を表示します。
  80. 文字列の検索
    VC++ の FindText() で文字列を検索します。
  81. 文字列の検索と置き換え
    VC++ の ReplaceText() で文字列を検索して置き換えます。
  82. 印刷コモンダイアログ
    VC++ でページ設定(PageSetupDlg) と印刷コモンダイアログ(PrintDlg) を使って印字します。

    Common Control の基礎

  83. ICON を Image List で描画する
    VC++ でリソースに取り込んだ5枚の ICON を Image List に登録して描画します。
  84. BMP 画像に透明色を設定して描画する
    VC++ で BMP ファイルから透明色を設定して Image List に登録して、通常の画像と並べて描画します。
  85. 画像を5枚に分割して描画する
    VC++ で Sprite を5枚並べた画像を切り出して、透明色を設定して描画します。
  86. Image List でアニメーション
    VC++ で Image List に画像を登録して、タイマ割り込みでアニメーションをします。
  87. Status Bar を表示する
    VC++ の CreateWindowEx() で Status Bar を生成してウインドウに貼り付けます。
  88. Tool Bar を作成する
    VC++ で良く使うコマンドを専用のバー(Tool Bar) にアイコンとして登録します。
  89. Tool Bar で画像を切り替える
    VC++ で Tool Bar に表示されたアイコン(画像)をクリックするとメインウインドウの画像が切り替わります。

    RichEdit の基礎

  90. RichEdit で TEXT を表示
    DialogBox に RichEdit を貼り付けて TEXT を表示します。
  91. RichEdit に EM_STREAMIN で入力
    DialogBox の RichEdit から EM_STREAMIN で TEXT FILE を入力します。
  92. RichEdit から EM_STREAMOUT で出力
    DialogBox の RichEdit から EM_STREAMOUT で TEXT FILE に直接出力します。
  93. Rich Edit にテキストを表示する
    VC++ でウインドウに Rich Edit Control を貼り付けてテキストを表示します。
  94. RichEdit にフォントを設定する
    RichEdit にフォントを設定してテキストを表示します。
  95. RichEdit にタブを設定する
    RichEdit にフォントとタブを設定してテキストを表示します。
  96. Rich Edit で文字列を検索する
    Rich Edit Control のテキストを EM_FINDTEXT で検索します。
    CONTEXTMENU: の基本的な説明をします。
  97. Rich Edit で文字列を置き換える
    Rich Edit Control のテキストを EM_REPLACESEL で置き換えます。
  98. Rich Edit で縦書きに表示する
    VC++ で Rich Edit を使って日本語の文章を縦書きに表示します。
    この機能は Windows95(98,Me)では使えますが、残念ながら XP では使えないようです。

    Object Class の基礎

  99. TextOut Object Class を作成する
    Object Class の作成方法を説明するために、最も簡単な Text を表示する TextOut Object Class を使います。
  100. 私有ライブラリを作成する
    TextOut Object Class を使って私有ライブラリの作成方法を説明します。
  101. ファイルを入力する Object Class を作成する
    VC++ で ファイルを入力する Object Class を作成して、メニューからテキストファイルを選択して表示します。
  102. BMP Object Class で画像を表示する
    VC++ でファイルから BMP 画像を入力して表示する BMP Object Class を作成します。
  103. 犬が歩くアニメーションを描画する
    VC++ でタイマ割り込みを使って画像を切り替えながら犬が歩くアニメーションを描画します。
  104. 犬が歩く速度を↑↓キーで調整する
    VC++ でタイマ割り込みの速度を↑↓キーで変更して、アニメーション速度を調整します。

DialogBox Program

    Dialog BOX のプログラム

  1. Edit Control で Text Editor を作る
    VC++ の DialogBox の EditControl を使って簡単な Text Editor を作成します。
  2. 生年月日を入力して、曜日と生存日数を表示
    VC++ の DialogBox から生年月日を入力して、生まれた曜日と生存日数を表示します。
    ★クレオパトラとシーザーの暦の豆知識です。
  3. 通算日数を日付に変換する
    西暦1年1月1日を基準にして、通算日数(1〜)を日付に変換します。
  4. Spin でレコードを選択する
    VC++ で EditBox に表示するレコードを Spin で選択します。
  5. ScrollBar でレコードを選択する
    VC++ で EditBox に表示するレコードを ScrollBar で選択します。
  6. ファイルを16進数で表示
    VC++ で Command Line で指定されたファイル名を取得して、List Box に16進数で表示します。
  7. List Box で名簿の削除と追加
    VC++ で List Box に名簿を表示して EditControl と Button 操作で「削除、追加」を行います。
  8. モードレス Dialog で画像アイコンをクリック
    VC++ で モードレス Dialog Box のアイコンをクリックして画像を切り替えます。
    ★ラジオボタンとグループの設定です。
  9. クリックしたデータを修正する
    VC++ で DialogBox の Edit を利用して、マウスで左クリックされたデータを修正します。
  10. フォルダーを検索して List Box に表示
    VC++ の DlgDirList() でフォルダーを検索して格納されているファイル一覧を List Box に表示します。
    ★サブフォルダーをダブルクリックすることにより、表示するフォルダーを切り替えます。

    Dialog BOX の Propaty

  11. Dialog Box の表示位置とサイズ
    VC++ で Dialog Box の表示位置とサイズを MoveWindow() で変更します。
  12. Dialog Box のフォントを設定
    VC++ で Dialog Box 全体に使用されるフォントを設定します。
  13. Edit Control のフォントを設定
    VC++ で Dialog Box に貼り付けた Edit Control のフォントを設定します。
  14. Edit Control の色を設定
    VC++ で Dialog Box に貼り付けた Edit Control の「背景色, 文字色, 文字背景」を設定します。

    List View, Tree View

  15. List View に名前一覧を表示する
    VC++ で DialogBox に ListView を貼り付けて名前一覧を表示します。
    VC++ で ListView_InsertItem() または SendMessage() を使います。
  16. List View にカラムと見出しを付ける
    VC++ で List View にカラム設定をして、見出しを付けて表示してみましょう。
    カラムの設定は ListView_InsertColumn() または SendMessage() を使います。
  17. List View のアイテム(番号)を直接変更する
    VC++ で List View のアイテム(番号)をクリックして、直接変更してみましょう。
  18. List View にアイコンを設定
    VC++ で List View にアイコンを設定して「大きいアイコン/小さいアイコン/レポート形式」を SetWindowLong() で切り替えます。
  19. Tree View を表示する
    VC++ で DialogBox に TreeView を貼り付けて、家族構成を表示します。
  20. Tree View のデータを保存する
    VC++ で TreeView に表示したデータを、再起でたどってファイルに保存します。
  21. Tree View をクリックする
    クリックされた TreeView の項目を MessageBox に表示します。
    ★UNI CODE でプログラムしています。

    フォルダーの検索と表示

  22. Directry を List View に表示する
    VC++ で Directry を検索して「名前/サイズ/更新日付」を List View に表示します。
  23. Desk Top を List View に表示する
    VC++ の Shell Object で Desk Top を List View に表示します。
    SHGetFileInfo() でアイコンを取得します。
    ★WIN32_FIND_DATA 構造体と SHFILEINFO 構造体の定義です。
  24. MyComputer を List View に表示する
    VC++ の Shell Folder で MyComputer と Desk Top を List View に表示します。

Windows Program

    MOUSE & KEY のプログラム

  1. マウスの座標を表示する
    VC++ で WM_MOUSEMOVE: でマウスの移動を検出して、座標を TextOut() で表示します。
  2. マウスの左ドラッグで線を描く
    マウスの左ボタンを押しながら移動すると線を描きます。
  3. マウスをキャプチャする
    VC++ で マウスをキャプチャして、XとYの移動量を検出して表示します。
  4. マウスカーソルを砂時計にする
    VC++ で左クリックすると SetCursor() でマウスカーソルを砂時計に設定します。
  5. マウスのダブルクリックを検出する
    VC++ でマウスのダブルクリック(WM_LBUTTONDBLCLK:)を検出して Message Box で知らせます。
  6. ホイールマウス
    VC++ でホイールマウスを検出して、カウンタをアップ(ダウン)します。
  7. キーの状態を調べる−1
    VC++ で GetKeyState() でキーの状態を調べて表示します。
  8. キーの状態を調べる−2
    VC++ で GetKeyboardState() でキーの状態を調べて表示します。
  9. キー操作で BMP 画像を動かす
    VC++ で GetKeyboardState() でキーの状態を調べて BMP 画像を動かします。
  10. 非同期でキーを調べる
    VC++ で GetAsyncKeyState() で キーをセンスして ESC で中断します。
  11. 矩形で領域を選択
    画像を表示して、マウスのドラッグで矩形領域を選択します。
  12. マウスの軌跡を vector に記録する
    マウスの左ボタンを押しながら移動すると、軌跡を vector に記録します。

    BMP 画像のプログラム

  13. 画像に合わせてサイズを設定する
    VC++ で MoveWindow() でウインドウのサイズを BMP 画像の大きさに合わせて表示します。
  14. ドラッグ&ドロップで画像を表示
    VC++ でドラッグ&ドロップされた画像ファイルの名前を取得して、画像の大きさに合わせて表示します。
  15. Menu 選択で画像の入力と画像情報の表示
    VC++ で Menu 選択で入力した画像サイズに合わせて表示します。
    画像情報を表示する Menu を設定します。
    ★HWND から HDC を取得して描画します。
  16. 美人の画像をボタン操作で動かす
    VC++ で美人の画像をモードレス DialogBox の SpinButton で動かします。
    ★モードレス Dialog と Spin Button の使い方です。
  17. 透明色を使って描画する
    ★VC++ の TransparentBlt() で透明色を使って画像を描画します。

    Windows & Control

  18. Static Control に TEXT を表示する
    VC++ でウインドウに Static Control を貼り付けて TEXT 文字列を表示します。
  19. EditBox を使う
    EditBox から二件のデータを取得して、加算を行います。
  20. List Box で名前一覧を表示する
    VC++ で空のプロジェクトを作成して、プログラム全体を自前で作成します。
    ListBox を Window 全体に貼り付けて名前一覧を表示します。
  21. StatusBar に画像情報を表示する
    VC++ でウインドウに StatusBar を設定して SendMessage(hStatus, SB_SETTEXT, ...) で画像情報を表示します。
  22. EditBox や Button を貼り付ける
    VC++ でウインドウに EditBox や Button を貼り付けてタイマ割り込みでカウントします。
  23. Edit Control で Text Editor を作成する
    VC++ で Edit Control を使って一人前の機能を持つ Text Editor を作成します。
  24. Scroll Bar で画像をスクロール
    VC++ でウインドウサイズより大きな画像にスクロールバーを設定します。
  25. 画像の拡大・縮小とスクロール
    画像を拡大・縮小して表示する方法と、拡大表示の時にスクロールバーを設定するプログラムです。
  26. Window を左右に分割して表示する
    VC++ で二枚の List Box をウインドウの左右に並べて表示します。
  27. ウインドウの境界をドラッグする
    VC++ で二枚の List Box の境界をマウスでドラッグして左右の幅を変更します。
    ★List Box をサブクラス化します。

    TEXT の effect

  28. メッセージのスクロール
    VC++ でゲームのメッセージをスクロールしながら表示します。
  29. 「ちらつき」を抑えてスクロール
    ★VC++ で BackBuffer を取得して「ちらつき」を抑えてスクロールします。
  30. Full Screen でスクロール
    ★VC++ で Full Screen でメッセージをスクロールします。
  31. fadein/fadeout でタイトルを表示
    VC++ で fadein / fadeout でタイトル文字を表示します。
  32. 「ちらつき」を抑えて fadein/fadeout
    VC++ で BackBuffer を取得して「ちらつき」を抑えて fadein / fadeout します。
  33. 描画の「ちらつき」を抑える
    VC++ で描画の「ちらつき」を抑える方法をステップアップで説明します。

    画像の回転と透明色の設定

  34. マスク画像を使って、透明色を設定する
    ★VC++ で透明色を実現するには、ラスターオペレーションを使ってピクセルごとの演算を行います。
  35. 透明色とマスク画像の作成
    VC++ でマスク画像をプログラムで作成すると共に、描画速度のアップを図ります。
  36. 画像を回転しながら描画する
    ★VC++ で PlgBlt() で BMP 画像をタイマ割り込みで回転しながら描画します。
  37. BackBuffer を使う
    VC++ で BackBuffer を取得して「画像のちらつき」を抑えて回転しながら描画します。
  38. メッセージループから描画する
    VC++ で DirectX のようにメッセージループから描画すると、非常に滑らかに回転できました。

    IMAGE の effect

  39. スポットライトで照らす
    VC++ で背景画像をスポットライトで照らします。
  40. 画像の fadeout
    VC++ で画像のピクセルデータに直接アクセスして、ピクセルごとの明度を下げながら fadeout します。
  41. 画像の上から半透明で TXET を表示
    VC++ で画像の上から半透明で TEXT 文字を表示します。
  42. 二枚の画像をブレンドしながら切り替える
    VC++ で二枚の画像をピクセルブレンドしながら滑らかに切り替えます。
  43. 3Dのようにスクロールする
    VC++ で背景画像の下側(手前側)を拡大して、3Dのようにスクロールします。
  44. JPEG 画像をマスクで Alph Blending する
    VC++ で JPEG 画像を GIF で作成したマスク画像に従って Alph Blending して表示します。
  45. αチャンネル付の BMP 画像を表示する
    VC++ で32bit BMP の画像をαチャンネルで Alph Blending して表示します。
  46. αチャンネル付の DDS 画像ファイルを表示する
    VC++ で DirectX で使われているαチャンネル付の DDS 画像ファイルを表示します。
  47. DDS 画像で Alph Blending する
    VC++ でαチャンネル付の DDS 画像を使って、背景画像とブレンドして表示します。

    Screen Saver のプログラム

  48. Screen Saver 入門
    VC++ で乱数で矩形を表示する Screen Saver のプログラムです。
  49. Screen Saver で画像を表示
    VC++ で二個の画像と矩形を乱数で描画する Screen Saver のプログラムです。
  50. Dialog Box で速度を設定
    VC++ でスクリーンセーバーの設定ボタンをクリックすると表示される Dialog Box から描画速度を設定します。
  51. String Table(idsIniFile, idsAppName)を使用する
    scrnsave.h の中で定義されている idsIniFile と idsAppName を String Table で定義します。

    Shell Object のプログラム

  52. Shell Object でファイルをコピーする
    VC++ で Shell Object でファイルをコピーします。
  53. ファイル(フォルダー)をゴミ箱に移動する
    ★Shell Object でファイル(フォルダー)をゴミ箱に移動します。
  54. 関連付けられたプログラムを起動する
    VC++ で指定されたファイルを拡張子で関連付けられたプログラムから起動します。
  55. 特殊フォルダーのパスを求める
    VC++ で Windwos System で使われる特殊フォルダーのパスを求めます。
  56. ショートカットを作成する
    VC++ で実行形式(.EXE)のショートカットを作成します。

    Clipboard のプログラム

  57. Clipboard の書き込みと読み出し
    VC++ で Clipboard への TEXT の書き込みと読み出しのプログラムです。
  58. Clipboard の画像を描画
    VC++ でクリップボードに格納されている画像を描画します。
  59. 表示中の画面を Clipbord に書き出す
    VC++ で表示中の画面をキャプチャして Clipbord に書き出します。
  60. 矩形領域を Clipbord に書き出す
    VC++ で表示中の画面から Clipbord に書き出す矩形領域を設定します。
  61. キャプチャされた画像を BMP File に保存
    VC++ でキャプチャされた画像を BMP File として保存します。

    Drag & Drop のプログラム

  62. File List を Copy&Paste する
    Windows エクスプローラと相互に File List を Copy&Paste します。
  63. Drop されたファイルを受け取る
    Windows エクスプローラから Drag&Drop されたファイルを List Box に追加します。
  64. C++ API で Drop されたファイルを受け取る
    C++ で OLE の API を使って、エクスプローラから Drop されたファイルを受け取ります。
  65. C言語の API で File List を Drag&Drop する
    VC++ でC言語の API を使って、エクスプローラと相互に File List を Drag&Drop します。
  66. C++ API で File List を Drag&Drop する
    C++ の OLE を使って、Windows エクスプローラと相互に File List を Drag&Drop します。

    DLL(Dynamic Link Library)

  67. DLL の基礎
    VC++ で DLL(Dynamic Link Library) の作成方法と DLL を使ったプログラムを説明します。
    DLL が解かると何故か「とってもプログラムがうまくなった」ような気がします。
  68. LHA で圧縮された TEXT を表示
    VC++ で LHA で圧縮された TEXT ファイルを解凍して表示します。
    吉崎栄泰氏が開発された unlha32 をダウンロードすれば簡単です。
  69. LHA ファイルの検索と TextFile の表示
    VC++ で LHA で圧縮された TEXT ファイル名を検索して、解凍した文字列を表示します。
  70. LHA で圧縮された BMP 画像を表示
    VC++ で LHA で圧縮された BMP 画像ファイルを解凍して表示します。
  71. DLL を Dyamic にリンクする
    VC++ で LoadLibrary() と GetProcAddress() で DLL を Dyamic にリンクします。
  72. Drag & Drop されたファイルを圧縮する
    VC++ で Drag & Drop されたファイルを LHA で圧縮して .LZH を作成します。
  73. CAB で圧縮する
    VC++ でファイルを圧縮して .CAB ファイルを作成します。
  74. CAB で圧縮された TEXT を解凍する
    VC++ で CAB で圧縮された TEXT ファイルを解凍します。
  75. Jpeg 画像を表示する
    VC++ で SUSIE のプラグイン(DLL) を使って Jpeg 画像を表示します。
    この使い方が解かると SUSIE のプラグインを使って、ほとんどの全部の画像が表示できます。
  76. GIF 画像を表示する
    VC++ で SUSIE のプラグイン(DLL) を使って GIF 画像を表示します。

    MDI のプログラム

  77. MDI のプログラム
    VC++ で MDI(Multi Document Interface) を使って複数のウインドウを表示します。
  78. MDI で画像を表示
    「新規作成」を選ぶと次々とウインドウが作成されて画像が表示されます。

    Thread のプログラム

  79. スレッドの基礎
    VC++ でスレッドを起動して、メインウインドウに現在時刻を表示します。
  80. 円と矩形を同時に描画
    VC++ で共通のウインドウに「メインからは円」を「スレッドからは矩形」を重ねて描画します。
  81. スレッドで DialogBox を表示する
    VC++ で起動されたスレッドから DialogBox を表示します。

Business Soft

    Data Base のインストール

  1. データベースのインストール
    VC++ でフリーのデータベース(MySQL) をインストールします。
  2. SQL のテスト
    VC++ でデータベースを作成して簡単な SQL のテストをします。
  3. Script File のテスト
    VC++ で MySQL で Script File のテストをします。
  4. 成績データベースの作成
    VC++ でプログラムで使用する成績データベースを作成します。

    Data Base のテストプログラム

  5. MySQL のコンパイル環境
    VC++ で MySQL のヘッダとライブラリのパスを設定してコンパイル環境を整えます。
  6. データベースにコネクト
    VC++ で成績データベース(mark) にコネクトして mark_table を表示します。

    成績データベースの表示と更新

  7. DialogBox で表示
    VC++ で成績データベースのレコードをスピンボタンで切り替えて DialogBox に表示します。
  8. 成績データベースの更新
    VC++ で DialogBox に表示した成績データベースのレコードを更新します。

    成績データと List View

  9. 抽出したレコードを List View に表示
    VC++ で成績データベースから抽出したレコードを List View に表示します。
  10. DialogBox でメニューを使う
    VC++ で DialogBox にボタンとメニューを設定します。
  11. List View を Column でソートする
    VC++ で成績データを List View に表示して、Column をクリックすると ListView_SortItems() でソートします。
  12. List Control で名簿を表示する
    VC++ で CreateWindowEx() で List Control を生成して名簿を表示します。
  13. List Control で Column を使う
    VC++ で 通常のウインドウに List Control を貼り付けて Column を設定します。
  14. 発行するクエリを編集する
    VC++ で DialogBox で編集したクエリを発行して List Control に表示します。

    エラーチェックと操作性

  15. Dialog Box で成績データの管理(2002/12/16)
    VC++ で DialogBox を使って簡単な成績データの管理プログラムを作成します。
  16. 成績データの入力
    VC++ で DialogBox から成績データの入力を行います。
  17. 成績処理で PageUp,Down を使う
    ★VC++ で EditBox のウインドウをサブクラス化してプロシージャで WM_KEYDOWN を捕まえます。
  18. 成績データ入力処理
    VC++ で成績データの入力操作をキー「矢印キー,PageUp,Down」で制御します。
    ★全角/半角をプログラムで切り替える方法も説明します。

    住所録

  19. 郵便番号と住所の入力
    VC++ で郵便番号を利用して住所を入力します。またキーワードで郵便番号を調べます。
  20. 入力画面とエラーチェック
    VC++ で DialogBox から名簿データを入力するレイアウトを設計します。
    入力されたデータのエラーチェックを行います。

パズル & Game

  1. 奇数の魔方陣を表示する
    VC++ でメニュー選択で奇数の魔方陣を表示します。
    奇数の魔方陣(3方陣、5方陣、7方陣・・・)は共通のアルゴリズムで作成することができます。
  2. 偶数の魔方陣を表示する
    VC++ で偶数の魔方陣の内、4方陣、8方陣、12方陣、16方陣などは、共通のアルゴリズムで作成することができます。
  3. 順列で魔方陣の解を検索する
    VC++ で全ての順列組み合わせで魔方陣になる並びを検索します。
  4. 万年カレンダを表示
    VC++ でウインドウの右隅に万年カレンダを表示します。

    石取りゲーム

  5. 「石取りゲーム」の説明
  6. マウスのクリックで石を取り除く
    石を並べた画像をマウスでクリックして取り除きます。
  7. 人間とコンピュータが交互に石を取り除く
    人間とコンピュータが交互に石を取り除きます。
  8. 「石取りゲーム」を完成する
    Font を設定して画面のレイアウトを変更し「石取りゲーム」を完成させます。

    じゃんけんバトルゲーム

  9. 「じゃんけんバトルゲーム」の説明
    DLL(Dynamic Link Library)で作成した思考関数を競い合う「じゃんけん Battle Game」の説明です。
    ほんの少しC言語の知識があれば 誰でも簡単に思考関数を作成する ことができます。
  10. 「じゃんけんバトルゲーム」を実行する
    プロジェクトを Down Load して「じゃんけんバトルゲーム」を実行します。
  11. Main Program の説明
    「じゃんけんバトルゲーム」の Main Program の説明です。
  12. JYAN Object Class の説明
    「じゃんけんバトルゲーム」Object Class の説明です。

    三山くずし Game Program

  13. 三山くずしゲームを作成する
    Miyama Object Class の全ソースコードを掲載します。
    実行形式のプログラムは Game Program & Tool のダウンロード からダウンロードできます。
  14. 三つの山に石を表示
    乱数を使って、三つの山に1〜15個の石を表示します。
    Miyama Object Class を使えばプログラムが簡単です。
  15. 山の石をクリック操作で取り除く
    三つの山に積まれた石を、マウスの左クリックで取り除きます。
  16. コンピュータがプレイする
    人間とコンピュータが交互にプレイします。
    またコンピュータが石を取り除くアニメーションを行います。
  17. 勝敗判定とゲームの繰り返し
    ゲームの終了を判定して「勝ち・負け」の Message Box を表示します。
  18. Dialog Box を表示する
    ゲームの進行を管理する Dialog Box を表示します。
  19. Dialog Box に対戦成績を表示する
    Dialog Box に対戦成績を表示します。
    また Dialog Box の「開始」ボタンと「説明」ボタンを設定します。
  20. 「棋譜」と「待った」をサポートする
    「棋譜」を取って Scrool Bar でプレイを再現します。
    また再現中の局面からプレイを続けることもできます。
  21. 「音楽」と「効果音」を鳴らす
    DirectX を使って「音楽」と「効果音」を鳴らします。
  22. デモプレイを設定する
    プログラムを起動するとデモプレイが始まります。

    オセロゲーム

  23. オセロゲームの盤と駒を表示
    テンプレートを使ってオセロゲームの盤と駒を表示します。
  24. クリックされた場所に駒を置く
    マウスでクリックされた場所に黒と白の駒を置きます。
  25. 挟んだ駒を裏返す
    クリックした場所に駒を置いて、挟んだ駒を裏返します。
  26. Osero Object Class
    Osero Object Class を作成します。

    オセロバトルゲーム

  27. 「オセロバトルゲーム」の説明
    DLL の思考関数を競い合う「オセロバトルゲーム」の説明です。
  28. ゲームの Down Load とプログラムの実行
    ゲームプログラムを Down Load して実行します。
  29. 思考関数の作成方法
    オセロバトルゲームの思考関数(DLL)を作成する方法です。
  30. Osero Object Class のメンバー関数
    Osero Object Class で提供されるメンバー関数(メソッド)に付いて説明します。
  31. ST[8][8] を利用した思考関数
    ST[8][8] を使うと小さなオセロ盤が表示され、局面を進めた状況を確認することができます。
  32. MinMax 法による思考
    ミニマックス法による基本的な考え方です。
  33. 残り3手を読み切る
    このプログラムは「何手先でも読み切れる」思考ルーチンの足がかりです。
  34. 終盤を読み切る
    ゲームの終盤を読み切って、勝利に導きます。
    20手先まで読み切れたら鬼に金棒なのですが?
  35. 強い関数を作成する
    強い人の相手が務まるようにプログラムを強くする方法を考えてみましょう。

    Logic Puzzle の思考関数に挑戦

  36. Logic Puzzle の説明
    プロでも音を上げた思考関数に、あなたはどこまで挑戦できるでしょうか?
  37. 思考関数(DLL)の解説
    Logic Puzzle の思考関数の作成について解説します。
  38. Logic Puzzle Object Class の説明
    Logic Puzzle Object Class で提供されるメンバー関数に付いて説明します。
  39. Logic Puzzle の解法
    Logic Puzzle の解法に付いて考察します。
  40. 問題ファイルの作成
    Logic Puzzle の問題ファイル作成と、Puzzle を解くプログラムです。

    Basic Sprite Object Class

  41. Bsprite で BMP 画像を表示する
    BMP ファイルを描画する Object Class を作成します。
  42. 座標を指定して、黒を透明色で描画する
    座標を指定して、黒を透明色で描画するメンバ関数(メソッド)を追加します。
  43. 画像を切り出す
    画像を切り出して Sprite を一枚ずつ描画します。
  44. Basic Sprite Object Class が完成
    Sprite の枚数設定と #ifndef を定義して Basic Sprite Object Class の完成です。
  45. BSprite でアニメーション
    BSprite Class を使って簡単なアニメーションをを行います。
  46. Path Check
    current→指定Path の順にファイルを確認して、エラーのとき直ちに終了します。

    カードゲームの Object Class

  47. BSprite Class を継承して、一枚のカードを表示する
    BSprite Class を継承して、格子状に並んだカードイメージを切り出す CARD Object Class を作成します。
  48. タイマを設定してカードを一枚ずつ表示する
    CARD Object Class を使って、タイマ切り替えで49枚のカードを順に表示します。
  49. 48枚のカードをシャッフルして表示する
    48枚のカードをシャッフルして、画面に整列して表示します。
  50. カードをクリックして表返します
    48枚のカードをシャッフルして裏向けに並べて、クリックされたカードを表返します。

    Sprite Class のテスト

  51. 画像でスコアを表示
    数字キーでカウンタを操作しながら、画像を使ってスコアを表示します。
  52. GSPRITE Class を継承して美人のアニメーション
    My.lib に登録されている GSprite Class と BACKBUF Class を継承して美人の顔が変わるアニメーションを行います。

    シューティングゲームに挑戦

  53. キーの操作でシップを動かす
    キーの操作「2,4,8,6」とその組み合わせでシップの動きを制御します。
  54. BMP の背景画像をスクロール
    タイマ割り込みで BMP の背景画像を横にスクロールします。
  55. 同心円状に広がるように弾を一斉に発射
    Space キーを押すと、同心円状に広がるように24発の弾を一斉に発射します。
  56. Space キーで弾を連射
    Space キーを押し続けると機関銃のように弾を連射します。
  57. list で弾丸を一括して管理する
    STL(Standard Template Library) の list を使って弾丸の動きを一括して管理します。
  58. SHOT Object Class(list) で弾丸を一括管理
    STL(Standard Template Library) を使って SHOT Object Class を作成します。
  59. シップが爆発するアニメーション
    キーを押すと爆発音がして、シップが爆発して消滅します。
  60. シップの動きを Text File で制御する
    動きのデータを Text File にタイプして、これを入力してシップの動きを制御します。
    ゲームでは細かな調整が必要ですが、手軽に調整できるこのような機能は必須です。

    RPG ゲームに挑戦

  61. キーの操作でキャラクタを動かす
    キーの操作で「前後左右」にアニメーションしながらキャラクタを動かします。
  62. Map Chip で背景を表示
    Map Chip を組み合わせて BG(Back Ground) を表示します。
    ★MAPEDIT の操作法を説明します。
  63. 背景画像のスクロール
    Map Chip を組み合わせて作成した背景画像をスクロールします。
  64. 背景画像を DOT 単位にスクロール
    Map Chip を組み合わせて作成した背景画像を DOT 単位にスクロールします。
  65. BG の上でキャラクタが動く
    BackBuffer を使って、BG を背景にしてキャラクタが動き回るプログラムを作成します。
  66. MapChip でキャラクタを制御
    Full Screen Mode で MapChip に「通れる、通れない」を設定してキャラクタを制御します。
  67. BG を二枚重ねる
    BG を二枚重ねて、その間にキャラクタを置くことにより、背景に奥行きを持たせます。
  68. BG を切り替える
    秘密の通路をくぐると、ダンジョンの BG に切り替わります。
  69. シーンを組み立てる
    Sprite を組み合わせて、魔法のシーンや攻撃のシーンに挑戦します。

Network Program

    Web サーバーに接続

  1. Web ページを TEXT 形式で表示
    DOS モードで URL を指定して Web ページを TEXT 形式で表示します。
  2. Web サーバーサイドのファイルを取得する
    Network Object Class で Web サーバーサイドのファイルを取得します。
    Web サーバーサイドの画像ファイルも取得(ダウンロード)できます。

    FTP サーバーに接続

  3. FTP サーバーに接続して Download する
    FTP サーバーに接続して Download する最も簡単なプログラムです。
  4. FTP サーバーを構築する
    ソフトをダウンロードして、無料で FTP サーバーを構築する方法です。
    ★ipconfig と ping でIPアドレスを確認します。
  5. FTP サーバーに接続して Upload する
    FTP サーバーに接続して Upload する最も簡単なプログラムです。
  6. FTP サーバーのディレクトリを表示する
    Network Object Class を使って FTP サーバーサイドのディレクトリを列挙して表示します。

    Winsock で通信

  7. ソケットの作成
    DOS モードで Winsock を初期化して、ソケットを作成します。
  8. UDP でメッセージを送受信
    DOS モードで UDP 送信と、UDP 受信を行うプログラムを作成します。
    ★ファイアウォールを解除します。
  9. Server と Client で通信
    DOS モードで TCP Server に TCP Client から接続します。
  10. Server の常駐
    Server の常駐と ★TCP/IP 接続とポート番号の説明です。
  11. メッセージを送信する Windows Program
    UDP でメッセージを送信する Windows Program を作成します。
  12. メッセージを受信する Windows Program
    UDP でメッセージを受信する Windows Program を作成します。
    ★ノンブロッキング方式を使ってタイマ割り込みで受信の確認を行います。
  13. Peer to Peer でメッセージの送受信
    Peer to Peer で接続して、リアルタイムにメッセージを送受信するプログラムを作成します。
    LAN で接続されているマシンを繋いでテストします。
  14. Client Program を Windows で作成する
    セッションを開設している Server に接続して、現在時刻を受信する Program を Windows で作成します。
  15. Server Program を Windows で作成する
    セッションを開設して Client に現在時刻を送信する Server Program を Windows で作成します。
  16. Winsock で Web Server に接続する
    Web Server に接続して index.html を TEXT 形式で取得して EditBox に表示します。
  17. HELLO を表示する Web Server を作成する
    "HELLO" を表示するページを送り返す「単純な Web Server」を作成します。

    Network Game

  18. Client と Server でゲーム情報の送受信
    DOS モードで Server に接続して、じゃんけんゲームに必要な情報を送受信します。
  19. Client 同士が対戦する「三山くずしゲーム」
    一組の Client が Server を介して「三山くずしゲーム」で対戦します。
  20. 複数の Client を管理する
    複数の Client が同時に接続して、Server を相手に「じゃんけんゲーム」をします。
  21. グループで「じゃんけん大会」
    最大16名が参加して、一斉に「じゃんけん大会」をします。
    「じゃんけん大会」のプログラムは Game Program & Tool のダウンロード からダウンロードできます。
  22. サーバーを介してオセロで対戦
    Server を介して Client 同士がオセロゲームで対戦します。
    「ネットワークオセロ」のプログラムは Game Program & Tool のダウンロード からダウンロードできます。
  23. ネット対戦ゲームを作成する
    Direct Play を組み込んで「対戦型の三山くずしゲーム」を作成します。

Application Program

    Binary ファイルのビューア

  1. Binary ファイルのビューアを作成
    Text Editor で表示できない Binary 形式のファイルを16進数と文字形式で表示します。
    実行形式のプログラムは Game Program & Tool のダウンロード からダウンロードできます。

    アニメーションプログラム

  2. 美人の顔のアニメーション
    Sprite.cpp を作成して美人の顔が変わるアニメーションを描画します。
    テストが終了したら、簡単に My.lib へ登録することができます。
  3. 汎用的なアニメーションプログラム
    Sprite Class を使って汎用的なアニメーションプログラムを作成します。
    実行形式のプログラムは Game Program & Tool のダウンロード からダウンロードできます。

    Map Editor の開発

    Mapchip を組み合わせてゲームの背景画像を作成するツールを開発します。
    1. Map Editor の開発
      MapChip を組み合わせて背景画像を作成するツール(Mapedit)を開発します。
    2. Map Editor の Object Class
      Map Editor を作成する MAPEDIT Object Class の説明です。
    3. Map Editor の Main Program
      Map Editor の Main Program の説明です。

    Binary Editor の作成

    1. Binary Editor の設計
      一青ヨウの「もらいなき」が平井堅が歌っているように聞こえます。
    2. フレームワークの作成
      Binary Editor のフレームワークを作成します。
    3. Binary Editor を作成する
      Text Editor で表示できないファイルを編集する Binary Editor を作成します。

    「Alpha Cannel 対応」画像ツール

    1. プログラムの設計
      「Alpha Cannel 対応」画像ツールのプログラム設計です。
    2. Object Class
      「Alpha Cannel 対応」画像ツールの Object Class です。
    3. Main Program
      「Alpha Cannel 対応」画像ツールのメインプログラムです。

    File Handler を作成

    1. File Handler を作成する
      ボタンをクリックするだけで「更新日付の新しいファイルをコピー」してくれる File Hnadler を作成します。
      スプリットウインドウやツールバーやフォルダーの検索など、プログラムはかなり難しくなります。
    2. File Handler のフレームワークを作成する
      List View, Edit Box, Tool Box, Status Bar を配置して、フレームワークを作成します。
    3. Tool Bar の機能を設定する
      ツールチップの表示と Tool Bar のアイコンクリックによる COMMAND のポストを設定します。
    4. コピーと削除機能を組み込む
      ファイルとフォルダーのコピーと削除機能を組み込みます。
      コピーでは受け取り側の更新日付が古いときに上書きを行います。
    5. ダブルクリックやメニューからプログラムを起動
      ファイルがダブルクリックされたとき、事前に関連付けられたプログラムから起動します。
      また List View で選択したファイルをメニュー選択でエディタなどから直接起動します。
    6. その他の機能を組み込む
      その他の機能を組み込んで File Handler を完成します。

    Super Editor を作成

    1. Super Editor を作成する
      フォルダーに格納されている全ファイルを再帰的に検索して、文字列の「検索と置き換え」を自動的に行います。
      また HTML ファイルからリンクされているイメージファイルをフォルダーに集約してリンクを張り替えます。
    2. Super Editor のフレームワークを作成する
      Tree View, List View, Tool Box, Status Bar を配置して、Tree View にフォルダーを展開します。
    3. List View の設定と Drag & Drop
      Tree View, List View にフォルダーを表示して、Drag&Drop と Double Click での起動をサポートします。

Windows Program Note

  1. 本日の日付と時刻を表示
    VC++ で本日の日付と時刻を調べて MessageBox で表示します。
  2. コンピュータ名を調べる
    VC++ でコンピュータに付けられた名前を調べて MessageBox に表示します。
    WinMain() の書き方に付いても解説します。
  3. Command Line を取得する
    VC++ で Command Line から渡された文字列を MessageBox に表示します。
  4. フルパスを調べる
    VC++ でカレントディレクトリとディレクトリ名(ファイル名)からフルパスを調べます。
    シフトJIS の全角コード「ソ」「表」の問題です。
  5. GlobalAlloc でメモリ領域の割り当て
    VC++ で GlobalAlloc でメモリ領域を割り当てます。
  6. LocalAlloc でメモリ領域の割り当て
    VC++ で LocalAlloc でメモリ領域を割り当てます。
  7. Desk Top の解像度を調べる
    VC++ で Desk Top の解像度(幅, 高さ) を調べて MessageBox に表示します。
  8. モニタのキャプションを調べる
    VC++ で現在起動中のモニタの「幅, 高さ, ビットレート, フレッシュレート」を調べます。
  9. 設定可能な Device Mode を列挙する
    VC++ で現在のハード構成で設定可能な Device Mode を列挙します。
  10. ミューテックスを使って排他処理を行う
    VC++ でミューテックス(Mutual Exclusive)を使って排他処理を行います。
  11. CreateProcess でプログラムを起動する
    Windows program 標準の CreateProcess でプログラムを起動します。
  12. プログラムの終了を待ち合わす
    VC++ で CreateProcess で起動したプログラムの終了を待ち合わせます。
  13. パラメータの個数を可変にする
    VC++ で printf() のようにパラメータの個数を可変で渡す関数を作成します。
  14. STRICT を宣言する
    VC++ で STRICT を宣言して効果を確かめてみました。
  15. #ifdef で Class を定義
    VC++ で二重定義にならないように #ifdef を使います。
  16. extern(外部変数)を使う
    extern(外部変数)を使って、Main.cpp と Sub.cpp で領域を共有します。
  17. ソースコードを共有する
    VC++ で共有フォルダーに Object Class を置いて複数のプロジェクトから参照します。
  18. Debug Message を出力する
    OutputDebugString() はデバッグ情報の収集に適しています。
  19. dprintf() で Debag 情報を印字する
    dprintf() を使ってデバッグ情報を印字します。
  20. プロジェクトの保存と複製
    プロジェクトの保存と丸ごと複製して修正する方法を説明します。
  21. プログラムロジック
    「アルゴリズム」と「プログラムロジック」に付いて。

前田稔(Maeda Minoru)の超初心者のプログラム入門

超初心者のプログラム入門(C言語 Windows)