#uselib "user32.dll"
#cfunc EnumDisplaySettings "EnumDisplaySettingsA" int,int,var
#cfunc ChangeDisplaySettings "ChangeDisplaySettingsA" var,int
#define CDS_UPDATEREGISTRY 0x01
*main
dim DevMode,44
sdim DevModeAll,15600
sdim data,1024
//グラフィックモードの情報取得(100個まで)
repeat 100
if(EnumDisplaySettings(0,cnt,DevMode)==0) : break
data+=""+DevMode(27)+" * "+DevMode(28)
data+=" : "+DevMode(26)+"Bit¥n"
memcpy DevModeAll,DevMode,156,cnt*156
loop
//ウィンドウと各オブジェクト作成
screen 0,300,320
title "グラフィックモード変更サンプル"
pos 0, 0:objsize 300,20
button gosub "変更",*ChangeDisplay
pos 0,20:objsize 300,300
listbox l,0,data
stop
//グラフィックモードの変更
*ChangeDisplay
memcpy DevMode,DevModeAll,156,0,l*156
ret=ChangeDisplaySettings(DevMode,CDS_UPDATEREGISTRY)
return |