今回はPythonのwindllを使ってメッセージボックスを表示させます。
tkinterやwxPythonを使わない方法です。
まぁtkinterやwxPythonを使った方が簡単なので、今回の記事はあんまり需要はないと思いますが...
tkinterやwx向け↓
wxPythonでメッセージボックスを表示させる
Tkinterでメッセージボックスを表示させる -メッセージボックスをフルに使う-
っで、windllなのでWindowsじゃないと実行できません!
Macとかではエラーになると思うので。
#サンプルコード
import sys
from ctypes import *
user32 = windll.user32
user32.MessageBoxW(0, "This is MessageBox\nOK ボタンと「i」アイコン","Title", 0x00000000|0x00000040)
user32.MessageBoxW(0, "This is MessageBox\nOK キャンセル ボタンと「?」アイコン","Title", 0x00000001|0x00000020)
user32.MessageBoxW(0, "This is MessageBox\nはい いいえ ボタンと「?」アイコン","Title", 0x00000004|0x00000020)
user32.MessageBoxW(0, "This is MessageBox\nはい いいえ キャンセル ボタンと「!」アイコン","Title", 0x00000003|0x00000030)
user32.MessageBoxW(0, "This is MessageBox\n中止 再試行 中止 ボタンとエラーアイコン","Title",0x00000002|0x00000010)
user32.MessageBoxW(0, "This is MessageBox\n再試行 キャンセル ボタンと「!」アイコン","Title", 0x00000005|0x00000030)
user32.MessageBoxW(0, "This is MessageBox\nキャンセル 再実行 続行 ボタンとエラーアイコン","Title",0x00000006|0x00000010)
a=user32.MessageBoxW(0, "戻り値もあります。","Title",0x00000003|0x00000030)
user32.MessageBoxW(0,"戻り値:" + str(a),"タイトル",0x00000040)
#戻り値
#はい: 6
#いいえ: 7
#キャンセル: 2
#OK: 1
#再試行: 4
#中止: 3
#再実行: 10
#続行: 11
#無視: 5
環境はWindows 10 Pro ですが場合によっては正しく表示されない場合があります。
そのときはMessageBoxAを使いましょう。
##アイコンの指定
コード | 内容 |
---|---|
0x00000010 | エラーアイコン |
0x00000020 | はてなアイコン |
0x00000030 | 警告アイコン |
0x00000040 | 情報アイコン |
##ボタンの指定
コード | 内容 |
---|---|
0x00000000 | [OK] |
0x00000001 | [OK] [キャンセル] |
0x00000002 | [中止] [再試行] [無視] |
0x00000003 | [はい] [いいえ] [キャンセル] |
0x00000004 | [はい] [いいえ] |
0x00000005 | [再試行] [キャンセル] |
0x00000006 | [キャンセル] [再実行] [続行] |
##デフォルトボタンの指定
コード | 内容 |
---|---|
0x00000000 | 最初のボタン |
0x00000100 | 二番目のボタン |
0x00000200 | 三番目のボタン |
##その他オプション
コード | 内容 |
---|---|
0x00040000 | 常に最前面 |
##戻り値
コード | 内容 |
---|---|
1 | [OK] |
2 | [キャンセル] |
3 | [中止] |
4 | [再試行] |
5 | [無視] |
6 | [はい] |
7 | [いいえ] |
10 | [再実行] |
11 | [続行] |
まぁこのメッセージボックスを使う意味はあまりないと思いますが、windllで独自GUIライブラリを作りたいって人は必要になるかもしれません。