"Hello Window!" を画面に表示する

MS-DOS のプログラムと違って Windows のプログラムではウインドウを表示するだけでも決まりきった長い ソースコードを書かなければなりません。
そこで Visual C++ では標準的なウインドウを表示するプログラムを自動的に生成する機能を備えています。
最初にこの機能を使って Windows のテンプレートを作成してみましょう。

ウインドウの生成やプログラムの流れは 空のプロジェクトからプログラムを作成する を参照して下さい。

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

プロジェクトを作成する方法です。

  1. 新規プロジェクト(hello)を作成します。
    プロジェクトの作成は Windows プログラムを自動的に作成する を参照して下さい。
    下の画像とはプロジェクト名が異なる(auto と表示されている)ので注意して下さい。
    プロジェクト名は Visual C++ が自動的に生成するIDの一部として組み込まれます。
    説明の画像
  2. ソリューションエクスプローラで Hello.cpp を表示して、WM_PAINT: の位置までスクロールします。
    Hello.cpp の画像
  3. WM_PAINT: に "Hello Window!" と表示する命令コードを追加します。
    行の先頭または行末で Enter をタイプすると空白行が挿入されます。
    ソースコードは英大文字と英小文字の区別をして下さい。
          case WM_PAINT:
               hdc = BeginPaint(hWnd, &ps);
               // TODO: 描画コードをここに追加してください...
               TextOut(hdc, 100, 20, "Hello Window!", 13);
               EndPaint(hWnd, &ps);
               break;
          
  4. ビルド(コンパイル)に続いて実行を行います。
    [デバッグ][デバッグなしで開始]を選択して、ビルドに続いて実行を行います。
    コンパイルの進行状況とエラーがあれば、エラーメッセージが表示されます。
    ページ先頭のウインドウが表示されたら完成です。
    説明の画像
  5. プログラムの確認が終われば[ファイル(F)][アプリケーションの終了(X)]で終了させて下さい。
    ウインドウの右上に表示されている[×ボタン]をクリックして終らせることもできます。
    また[Alt][F][X]のキーを順にタイプして終らせる方法もあります。
  6. プログラムを修正して、再ビルドするときには hello のプログラムを終了させて下さい。
    hello が実行された状態で再ビルドすると hello.exe にアクセス違反が発生してコンパイル出来ません。
  7. VisualC(.Net) の終了は[ファイル(F)][終了(X)]を選びます。
    ウインドウの右上に表示されている[×ボタン]をクリックして終らせることもできます。
  8. 文字列の引数にエラーが表示されるときは MultiByte に設定して下さい。
    VC++ の MultiByte の設定は [プロジェクト][プロパティ][構成プロパティ][全般]から文字セットに 「マルチバイト文字セットを使用する」を選択します。
    詳細は Program Guid を参照して下さい。
    逆に Unicode を使うときは、次のように書いて下さい。
    TextOut(hdc,100,20,L"Hello Window!",13);
  9. Windows 10 でも Win32 API を使ってプログラムを作成することが出来ます。
    詳細は W32 Hello を参照して下さい。

【演習】

  1. あなたの名前を表示する TextOut( ) 文を追加して下さい。
    "Hello Window!" と重ならないように表示して下さい。
  2. 郵便番号,住所,電話番号なども表示して下さい。
  3. 好きな文字列を思い通りの座標に表示できるように練習して下さい。

【NOTE】

TextOut() の説明です。
    TextOut(hdc, 100, 20, "Hello Window!", 13);
    char    buf[256];
    TextOut(hdc, 10, 200, buf, strlen(buf));
ソースコード 説明
TextOut 文字列を画面に表示する関数
hdc デバイスコンテキストのハンドル
100 表示のX座標をピクセル単位で指定
20 表示のY座標をピクセル単位で指定
"Hello Window!"表示する文字列
13 文字列の長さ(全角文字(漢字)は2バイト)
ハンドルとはシステムの制御領域にアクセスする手段を与えるものです。
hdc を通じて、デバイスコンテキストに対してアクセスします。

【MEMO】

プログラムの修得には訓練が必要で、頭では解かりきっているようなことでも繰り返し経験を積むことが重要です。 (^_^;)
また何度かプログラミングしていると、今まで無かったような思わぬ事態 (エラー/現象) に遭遇することがあります。
多くの人が挫折するのはそのような時で、エラーが解決できないからと諦めていたのではプログラマは務まりません。
原因は千差万別で、事態を打開するには各自が経験を積んでノーハウを蓄積するしか方法は無いでしょう。 (-.-;)
各ページの最後にある【演習】をしっかりやって、ノーハウを蓄積して行って下さい。

超初心者のプログラム入門(Win32API C++)