#include<windows.h> int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { MessageBox(NULL , TEXT("Kitty on your lap") , TEXT("メッセージボックス") , MB_OK); return 0; }このプログラムを実行すると、OKボタンだけのシンプルなメッセージボックスが表示されます
#include<windows.h> int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { MessageBox(NULL , TEXT("Kitty on your lap") , TEXT("メッセージボックス") , MB_OK | MB_ICONINFORMATION); return 0; }このプログラムは、情報メッセージボックスを表示します
#include<windows.h> int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { int on_button; on_button = MessageBox(NULL , TEXT("Do you like Nekomimi?") , TEXT("質問しています") , MB_YESNO | MB_ICONQUESTION ); if (on_button == IDYES) MessageBox(NULL , TEXT("You are nice!") , TEXT("メッセージボックス") , MB_OK); else MessageBox(NULL , TEXT("Be Killed!") , TEXT("メッセージボックス") , MB_OK); return 0; }これだけでも、「はい」か「いいえ」だけでゲームとか作れそうですね
#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow ) { CHAR chStr[128]; wsprintf(chStr , "インスタンスハンドル : %d" , hInstance); MessageBox(NULL , chStr , TEXT("Kitty on your lap") , MB_OK); return 0; }このプログラムでは、簡易のためCHAR配列を用いていますが
#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow) { TCHAR * str1 = TEXT("Kitty on your lap"); TCHAR str2[32]; lstrcpy(str2 , str1); MessageBox(NULL , str2 , str2 , MB_OK); return 0; }プログラムを実行すると "Kitty on your lap" と書かれたメッセージボックスが出現します
LPTSTR lstrcpyn( LPTSTR lpString1 , LPCTSTR lpString2, int iMaxLength );lpString1 は lpString2 をコピーするバッファへのポインタを指定します
#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow) { TCHAR * str1 = TEXT("Kitty on your lap"); TCHAR str2[32]; lstrcpyn(str2 , str1 , lstrlen(str1) + 1); MessageBox(NULL , str2 , str2 , MB_OK); return 0; }前のプログラムと結果は同じですが、処理過程が異なります
#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance , PSTR lpCmdLine , int nCmdShow) { TCHAR str1[128] = TEXT("Kitty on your lap\n"); TCHAR * str2 = TEXT("Tokyo mew mew"); lstrcat(str1 , str2); MessageBox(NULL , str1 , str2 , MB_OK); return 0; }プログラムを実行すれば、最初の str1 と str2 が結合した文字列が表示されます
定数 | 解説 |
---|---|
ボタン | |
MB_ABORTRETRYIGNORE | [ 中止 ]、[ 再試行 ]、[ 無視 ] プッシュボタンを表示します |
MB_OK | [OK] プッシュボタンを表示します。デフォルトです |
MB_OKCANCEL | [OK]、[ キャンセル ] プッシュボタンを表示します |
MB_RETRYCANCEL | [ 再試行 ]、[ キャンセル ] プッシュボタンを表示します |
MB_YESNO | [ はい ]、[ いいえ ] プッシュボタンを表示します |
MB_YESNOCANCEL | [ はい ]、[ いいえ ]、[ キャンセル ] プッシュボタンを表示します |
アイコン | |
MB_ICONEXCLAMATION MB_ICONWARNING | 感嘆符アイコンを表示します |
MB_ICONINFORMATION MB_ICONASTERISK | 吹き出しの中に小文字の「 i 」があるアイコンを表示します |
MB_ICONQUESTION | 疑問符のアイコンを表示します |
MB_ICONSTOP MB_ICONERROR MB_ICONHAND | 停止 |
デフォルトプッシュ | |
MB_DEFBUTTON1 | 最初のボタンをデフォルトプッシュボタンにします デフォルトです |
MB_DEFBUTTON2 | 2 番目のボタンをデフォルトプッシュボタンにします |
MB_DEFBUTTON3 | 3 番目のボタンをデフォルトプッシュボタンにします |
MB_DEFBUTTON4 | 4 番目のボタンをデフォルトプッシュボタンにします |
動作 | |
MB_APPLMODAL | ユーザーは、メッセージボックスに応答しなければ hWnd パラメータで指定されたウィンドウで作業を継続することはできません ほかのアプリケーションのウィンドウに移動して作業することはできます デフォルトです |
MB_SYSTEMMODAL | メッセージボックスが WS_EX_TOPMOST スタイルを持つ以外はMB_APPLMODAL と同じです ユーザーがすぐに気付く必要があるような重大なエラーを通知するために使用します |
MB_TASKMODAL | hWnd パラメータが NULL のときに 現在のタスクに属するすべてのトップレベルウィンドウが無効になることを除いて MB_APPLMODAL と同じです 呼び出し側のアプリケーション (またはライブラリ) が 有効なウィンドウのハンドルを持っておらず かつ、ほかのアプリケーションを中断せずに 現在のアプリケーションのほかのウィンドウへの入力を禁止したいときに使用します |
その他 | |
MB_DEFAULT_DESKTOP_ONLY | 現在入力を受け取るデスクトップは デフォルトのデスクトップでなければなりません それ以外の場合には、関数が失敗します デフォルトのデスクトップは、ユーザーがログオンした後で アプリケーションが動作するデスクトップです |
MB_HELP | [ヘルプ]プッシュボタンを追加します ユーザーがヘルプボタンを選択したり F1 キーを押したりすると ヘルプイベントが生成されます |
MB_RIGHT | テキストを右寄せします |
MB_RTLREADING | 右から左へテキストを表示します ヘブライ語やアラビア語をサポートしているシステムで有効です |
MB_SETFOREGROUND | メッセージボックスをフォアグラウンドウィンドウにします Windows システムは、内部で SetForegroundWindow 関数を呼び出します |
MB_TOPMOST | メッセージボックスを最前面ウィンドウ (WS_EX_TOPMOST) で作成します |
MB_SERVICE_NOTIFICATION | Windows NT 専用です 呼び出し側がユーザーにイベントを通知するサービスのときに指定します ユーザーがログオンしていないときも 現在のアクティブなデスクトップにメッセージボックスを表示します このフラグをセットするときは hWnd パラメータに NULL を指定してください |
MB_SERVICE_NOTIFICATION_NT3X | Windows NT 専用です この値は、Windows NT バージョン 3.51 で MB_SERVICE_NOTIFICATION として定義された値と同じです |
戻り値 | |
IDABORT | [中止]ボタンが選択されました |
IDCANCEL | [キャンセル]ボタンが選択されました |
IDIGNORE | [無視]ボタンが選択されました |
IDNO | [いいえ]ボタンが選択されました |
IDOK | [OK]ボタンが選択されました |
IDRETRY | [再試行]ボタンが選択されました |
IDYES | [はい]ボタンが選択されました |
LPTSTR lstrcpyn( LPTSTR lpString1 , LPCTSTR lpString2, int iMaxLength );指定文字数だけ、文字列をコピーします