C言語でメッセージボックスを表示させる 第三章 ボタンなどの設定 クマでもわかるC言語

2021年8月11日水曜日

C言語

t f B! P L

今回の内容

前回の続きです。
C言語でメッセージボックスを表示する クマでもわかるC言語
前回:
C言語でメッセージボックスを表示させる
第二章 アイコン 文字列関数 クマでもわかるC言語
今回はボタンの設定、その他メッセージボックスの設定をします。

ボタンの設定 とは

長々と解説する前に以下のサンプルコードを見てみましょう。
#include <windows.h>

int WINAPI WinMain(
    HINSTANCE hInstance ,
    HINSTANCE hPrevInstance ,
    PSTR lpCmdLine ,
    int nCmdShow ) {
  MessageBox(NULL , TEXT("This is メッセージボックス") ,
     TEXT("This is タイトル") , MB_YESNO | MB_ICONINFORMATION);
  return 0;
}
そしたら、以下のような結果になります。
C言語でメッセージボックスを表示させる 第三章 ボタンなどの設定 クマでもわかるC言語
前回と違うのはボタンです。前回までは[OK]しかありませんでしたが、今回は[はい][いいえ]になっています。
MessageBox関数の第四引数に指定します。今まではMB_OKを指定していたと、思うんですが、それを以下のように変更することで、
ボタンが変わります!
MB_OK[OK]
MB_YESNO[はい] [いいえ]
MB_OKCANCEL[OK] [キャンセル]
MB_YESNOCANCEL[はい] [いいえ] [キャンセル]
MB_RETRYCANCEL[再試行] [キャンセル]
MB_ABORTRETRYIGNORE[中止] [再試行] [無視]
MB_CANCELTRYCONTINUE[キャンセル] [再実行] [続行]
これで、ボタンの設定は終わりました。ちなみに自分は知らなかったのですが、Windowsには以下のようなメッセージボックスが存在していました。
C言語でメッセージボックスを表示させる 第三章 ボタンなどの設定 クマでもわかるC言語

ボタン戻り値

これは表にまとめた方が分かりやすいです。
IDOK[OK]
IDCANCEL[キャンセル]
IDYES[はい]
IDNO[いいえ]
IDABORT[中止]
IDIGNORE[無視]
IDRETRY[再試行]
IDCONTINUE[続行]
IDTRYAGAIN[再実行]
また、型はintなので宣言にはint 変数名;でOKです。よって、サンプルコードはこんな感じ♪
#include <windows.h>

int WINAPI WinMain(
    HINSTANCE hInstance ,
    HINSTANCE hPrevInstance ,
    PSTR lpCmdLine ,
    int nCmdShow ) {
  int user;
  user = MessageBox(NULL , TEXT("This is メッセージボックス") ,
     TEXT("This is タイトル") , MB_CANCELTRYCONTINUE | MB_ICONERROR);
  if (user == IDCANCEL) 
      MessageBox(NULL, TEXT("キャンセル"), TEXT("タイトル"), MB_OK);
  else if 
      (user == IDTRYAGAIN) MessageBox(NULL, TEXT("再実行"), TEXT("タイトル"),MB_OK);
  else if 
      (user == IDCONTINUE) MessageBox(NULL, TEXT("続行"), TEXT("タイトル"),MB_OK);
  return 0;
}
※if文のあと、処理するコードが一行である場合、{}は不要なため、省略しています。

デフォルトボタンの設定

デフォルトボタンというのは、例えば、一個目のボタンがデフォルトボタンだとすれば、一個目のボタンにフォーカスが入り、
その状態でEnterキーやスペースキーを押すと反応する という仕組みでる。
今日は表の大活躍です。
MB_DEFBUTTON1最初のボタンをデフォルトに
MB_DEFBUTTON2二個目のボタンをデフォルトに
MB_DEFBUTTON3三個目のボタンをデフォルトに
MB_DEFBUTTON4四個目のボタンをデフォルトに

これをMessageBox関数の第四引数に追加すればよいのです。

その他オプション

 

MB_APPLMODALメッセージボックスに応答するまで
親ウィンドウの操作ができません。
MB_HELPメッセージボックスにヘルプボタンが
追加されます。
MB_RIGHTテキストを右寄せにします
MB_RTLREADING右から左に文字を表示します
MB_SETFOREGROUNDメッセージボックスをフォアグラ
ウンドにします。
MB_TOPMOSTメッセージボックスを最前面
ウィンドウとして作成します
これも第四引数に追加すればよいのです。
まぁいくらカスタマイズしてもメッセージボックスはメッセージボックスなので。



( ´Д`)=3 フゥ
今回はここまでにします。第四章もお楽しみに!

このブログを検索

要望について

ブログのレイアウトやテーマについての提案をいただきました。現在qooqテーマを適応中です。 語尾を自動でつけるプログラムを作りたいという要望をいただきました。是非紹介したいですがどの言語でどのようなプログラムかなど、お問い合わせフォームで詳しく教えてください!

最近の出来事

最近の出来事
寿司打お勧め75位♪(練習モードだけど)

アンケート

Welcome!

「プログラミング独学ブログ」へようこそ。 Yakinyといいます。幅広い範囲で投稿していますので、ぜひ過去の記事も見てみてください!!コメントも大歓迎です!更新がとまってしまって申し訳ございません

お問い合わせ

名前

メール *

メッセージ *

QooQ