C++にUIを実装してみる!
専門学校の授業でC++(厳密にはC言語の授業でC++が混同してる)を習っているのですが、作るのはコンソールアプリケーションばかり。
折角なら既製品のようにUIにもこだわりたい!
ということで、実際にダイアログを使用してUIを実装してみたいと思います。
まずは空のダイアログを作ってみる。
まずは空っぽのダイアログを作って実際に動作確認までやってみます。
コンソールアプリケーション等でプログラムを作ったことある人向けの解説になりますので、ファイルの作り方や細かな設定は省きます。
因みに本ブログでは基本的にVisual Studio 2015を開発環境として使っています。
1.プロジェクト作成
Visual Studioを開いたら、
- ファイル
- 新規作成
- プロジェクト
- Visual C++
- Win 32
- Win 32プロジェクト
の順で開いてください。
設定は空のプロジェクトとか適当で大丈夫です。(わからないことはヤフ知恵とかで聴いてみましょ。)
次に以下の3つのファイルを作ってください。
- test.cpp(ソースファイルに作るの推奨)
- resource.h(ヘッダーファイルに作るの推奨)
- test.rc(リソースファイルに作るの推奨)
2.コードを書き込む
続いて中にコードを入れていきましょう。
test.cppは以下のコードをコピペしてみてください。
インクルードするライブラリはwindows.hのみで大丈夫です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <windows.h> // このコード モジュールに含まれる関数の宣言を転送します: BOOL CALLBACK DialogProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nCmdShow) { DialogBox(hInstance, TEXT("DIALOG_BOX"), NULL, DialogProc); return 0; } BOOL CALLBACK DialogProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_CLOSE: EndDialog(hWnd, IDOK); return TRUE; } return FALSE; } |
リソースファイルへのコード記述ができないという方は、ソリューションエクスプローラーからtest.rcを右クリックしてコード表示を選択すると表示されます。
test.rcは以下のコードをコピペしてみてください。
1 2 3 4 5 6 7 8 9 |
#include "resource.h" DIALOG_BOX DIALOG 100, 100, 100, 50 /* ダイアログのwindow設定 */ CAPTION "ここにキャプションが入ります" BEGIN /*通常はここに表示させる内容を書きます!!!!*/ END |
そして今回は処理等が無いので、ヘッダーファイル(resource.h)に関しては何も書かなくて大丈夫です。
3.実行してみる!
さて、実行してみましょう。
こんな感じで表示されましたか?
リソースファイル解説
リソースファイル(test.rc)の内容について解説します。
3行目「DIALOG_BOX DIALOG 100, 100, 100, 50
これはDIALOG BOX、つまりは今回表示されたWindowを定義しています。
調べるのが面倒だったので勘で書くと、
DIALOG_BOX ID x座標, Y座標, width, height
といった書式でしょうか?気になる方はちゃんと調べてみてください。
4行目「CAPTION “ここにキャプションが入ります”」
これは、
CAPTION”キャプション”
といった書式で、中に入れた単語がダイアログの左上に表示されるキャプションに表示されるようです。
5行目「BEGIN」~9行目「END」
基本的に「BEGIN」と「END」で囲まれた部分にダイアログ内に表示される内容が入るようです。
今回は空のダイアログということでコメントアウトしか入れていません。
HTMLでいう<body>~</body>みたいなノリですね。
ちなみに、リソースファイル内ではC++のようにセミコロンによって閉じたり等はないのでその辺が混ざらないように気を付けてください。
パラメータを弄ってみよう
DIALOG_BOXやCAPTIONの値を実際に弄ってみてどのように変化するのか触ってダイアログという概念に慣れてみましょう。
次回は実際にダイアログを使って簡単なプログラムを組んでみたいと思います。