HSPでは限られた種類のダイアログしか使うことができませんが、WindowsAPIを使うことによって様々なダイアログを表示できるようになります。
#module
#uselib "user32.dll"
#func MessageBox "MessageBoxA" int,sptr,sptr,int
#deffunc DialogEx str moji,str titlestr,int icon2,int buttons2,int up
icon=icon2
buttons=buttons2
moji2=moji
titlestr2=titlestr
if icon>=5:icon=4
if buttons>=6:buttons=5
dim kicon,5
;表示アイコン
kicon(0)=$10
;X
0
kicon(1)=$20
;?
1
kicon(2)=$30
;!
2
kicon(3)=$40
;i
3
kicon(4)=$00
;無し &
nbsp;
4
dim kbuttons,6
;ボタン
kbuttons(0)=
$0
;[OK]
0
kbuttons(1)=$1 ;[OK]と[キャンセル] & nbsp; 1
kbuttons(2)=$2 ;[中止][再試行][無視] & nbsp; 2
kbuttons(3)=$3 ;[はい][いいえ][キャンセル] 3
kbuttons(4)=$4
;[はい][いいえ]
4
kbuttons(5)=$5 ;[再試行][キャンセル] & nbsp; 5
;statに帰ってくる値
;1 [OK]
;2 [キャンセル][終了ボタン]
;3 [中止]
;4 [再試行]
;5 [無視]
;6 [はい]
;7 [いいえ]
para=kicon(icon)|kbuttons(buttons)|up
MessageBox hwnd,varptr(moji2),varptr(titlestr2),para
return
#global
//////////////////////////////////////////////////
kekka(0)="","OK","キャンセル","中止"
kekka(4)="再試行","無視","はい","いいえ"
DialogEx "OK?","title",0,2,
mes kekka(stat)
Copyright(C)Begriff
2007-2009.