【C++】「Windows」アプリケーションで「メッセージボックス」を表示する方法
【C++】
「Windows」アプリケーションで「メッセージボックス」を表示する方法
「Windows」アプリケーションで、
「メッセージボックス」を表示する方法をまとめています。
プログラムを作成中に、
何かとお世話になる「メッセージボックス」。
値の確認や、挙動のチェックなどに、
「メッセージボックス」を利用します。
「C++」では、
簡単に「メッセージボックスを表示できるようになっています。
詳しくは、
下記をご参照ください。
「メッセージボックス」とは
「メッセージボックス」は、
メッセージを表示するダイアログボックスを表示し、
「メッセージボックス」が表示されている間は、
プログラムの実行が、一時停止され、
「メッセージボックス」が閉じられたら、
プログラムの実行が再開する。
「メッセージボックス」の表示で、
押されたボタンの種類によって、
プログラムを分岐することができる。
プログラム上では、
「メッセージボックス」関数の「返り値」には、
どのボタンを押したかがわかる「定数」が返される。
Back
「メッセージボックス」の書式
メッセージボックスを表示させるためのAPI関数は、MessageBox()。
int MessageBox(HWND, LPCTSTR, LPCTSTR, UINT);
int MessageBox(
HWND ハンドル名,
LPCTSTR テキストor変数,
LPCTSTR テキストor変数,
UINT 定数
);
HWND = オーナーウィンドウのハンドル
LPCTSTR = メッセージボックス内に表示されるテキスト
LPCTSTR = メッセージボックスのタイトル
UINT = メッセージボックス内のスタイル(表示ボタン)の選択
第1引数 | HWND |
ウィンドウハンドルを表す型。
表示するメッセージボックスの オーナーウィンドウのハンドルを指定。
メッセージボックスが表示されている間、オーナーウィンドウ側を操作することはできない。
オーナーウィンドウを設定する必要がなければ、第1 引数はNULLを指定。
|
第2引数 | LPCTSTR |
const char*型。
変更できない文字列。
第2引数に指定するのは、メッセージボックスの中に表示される文字列。
|
第3引数 | LPCTSTR型 |
LPCTSTR型。
メッセージボックスのタイトルバーに表示される文字列を指定。
|
第4引数 | UINT unsigned int型 |
符号無しの整数。
メッセージボックスのスタイルを指定。
ここに指定した値に応じて、メッセージボックスが作成される。 |
戻り値 | - |
「MessageBox()」の「返り値」は、「int型」。
「返り値」の値には、
ユーザーが、どのボタンを押したかがわかる「値」が確認できる。
|
「メッセージボックス」の「ボタン表示」を指定する「定数」
メッセージボックスのスタイルは、MessageBox()の第4引数で指定。
定数値 | 意味 |
MB_CANCELTRYCONTINUE | 「キャンセル」「再実行」「続行」のボタンを表示。 |
MB_HELP | 「ヘルプ」ボタンを追加表示する |
MB_OK | 「OK」ボタンを表示。 |
MB_OKCANCEL | 「OK」と「キャンセル」ボタンを表示。 |
MB_RETRYCANCEL | 「再実行」「キャンセル」ボタンを表示。 |
MB_YESNO | 「はい」と「いいえ」ボタンを表示。 |
MB_YESNOCANCEL | 「はい」と「いいえ」と「キャンセル」ボタンを表示。 |
MB_RETRYCANCEL | 「再試行」と「キャンセル」ボタンを表示。 |
MB_ICONWARNING | 「!」アイコンを表示。 |
MB_ICONQUESTION | 「?」アイコンを表示。 |
MB_ICONSTOP | 停止マークのアイコンを表示。 |
MB_ICONINFORMATION | ○の中に小文字のiが書かれたアイコンを表示。 |
「MessageBox」関数の「返り値」として返される「定数」
ユーザが「メッセージボックス」のどのボタンを選んだかは、
「MessageBox()」の「返り値」で判断できる。
定数値 | 意味 |
IDOK | 「OK」ボタンを選択。 |
IDCANCEL | 「キャンセル」ボタンを選択。 |
IDYES | 「はい」ボタンを選択。 |
IDNO | 「いいえ」ボタンを選択。 |
IDRETRY | 「再試行」ボタンを選択。 |
表示されているメッセージボックスに「はい」ボタンがないのであれば、IDYESが返ってくる可能性は100%ない。
IDCANCELは、「キャンセル」ボタン以外にも、×ボタン、Escキーを押したときにも返されるが、「キャンセル」ボタンそのものが、メッセージ ボックスになければ、返されることはない。
Back