C言語関係掲示板

過去ログ

No.959 MessageBoxに?を出す

[戻る] [ホームページ]
No.12258

MessageBoxについて
投稿者---RYU(2004/01/28 17:30:23)


今、ウィンドウの×(閉じる)が押されたときにメッセージボックスを出して終了の確認ができるようにしているところなんですが、そこに「?」のアイコンを出したいのですが、MB_ICONQUESTIONというのを使って表示するというのは分かっているのですが、どうやってつければいいのか分かりません。
これが現在のプログラムです。
   iMsg = MessageBox ( hWnd , "終了しますか?" ,
   "確認" , MB_YESNO );            // メッセージを表示
   // はいが選ばれたとき
   if ( iMsg == IDYES ){
     DestroyWindow ( hWnd );        // 終了する
   }
それと、戻り値の格納にint型(iMsgという変数)を使っているのですが、どうして整数値しか入らないのに、IDYESというものを判定できるのかがよく分からないです。
すいませんが分かる方、どうかよろしくお願いします。


No.12259

Re:MessageBoxについて
投稿者---ppp(2004/01/28 17:39:38)


>今、ウィンドウの×(閉じる)が押されたときにメッセージボックスを出して終了の確認ができるようにしているところなんですが、そこに「?」のアイコンを出したいのですが、MB_ICONQUESTIONというのを使って表示するというのは分かっているのですが、どうやってつければいいのか分かりません。

この場合、orしてください。

  iMsg = MessageBox ( hWnd , "終了しますか?" ,
  "確認" , MB_YESNO|MB_ICONQUESTION);   

>それと、戻り値の格納にint型(iMsgという変数)を使っているのですが、どうして整数値しか入らないのに、IDYESというものを判定できるのかがよく分からないです。
>すいませんが分かる方、どうかよろしくお願いします。

IDYESが整数値だからです。

\MICROSOFT VISUAL STUDIO6.0\VC98\INCLUDE\WINUSER.H

#define IDYES 6

VCのファイルを検索してみると、勉強になりますよ。





No.12260

Re:MessageBoxについて
投稿者---おでん(2004/01/28 17:42:57)


>今、ウィンドウの×(閉じる)が押されたときにメッセージボックスを出して終了の確認ができるようにしているところなんですが、そこに「?」のアイコンを出したいのですが、MB_ICONQUESTIONというのを使って表示するというのは分かっているのですが、どうやってつければいいのか分かりません。
>これが現在のプログラムです。
>   iMsg = MessageBox ( hWnd , "終了しますか?" ,
>   "確認" , MB_YESNO );            // メッセージを表示
>   // はいが選ばれたとき
>   if ( iMsg == IDYES ){
>     DestroyWindow ( hWnd );        // 終了する
>   }
>それと、戻り値の格納にint型(iMsgという変数)を使っているのですが、どうして整数値しか入らないのに、IDYESというものを判定できるのかがよく分からないです。
>すいませんが分かる方、どうかよろしくお願いします。

MB_ICONQUESTION | MB_YESNO・・・?

winuser.hに
#define MB_YESNO  0x00000004L
#define IDYES 6
という定義があります。

No.12262

Re:MessageBoxについて
投稿者---RYU(2004/01/28 18:08:32)


pppさん、おでんさん素早い返信どうもがとうございます。
あの場合はor記号でよかったのですね(なぜ気づかなかったんだろう・・・・
それと、戻り値の方ですが、WINUSER.Hファイルを調べたら、たしかに#define IDYES 6と書いてありました。
こういう調べ方があるとは、まだまだ勉強不足でした。