LoginSignup
4
2

More than 1 year has passed since last update.

Pythonのwindllでメッセージボックスを使いこなす

Posted at

今回は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を使いましょう。

msgw.png

アイコンの指定

コード 内容
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ライブラリを作りたいって人は必要になるかもしれません。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2