解像度変更サンプル
http://blog.goo.ne.jp/hiro239415/e/06ae28612ce2f1dc2e6aff9afadc8ef9
を参考に少し改造してあります。
#uselib "user32.dll"
#cfunc EnumDisplaySettings "EnumDisplaySettingsA" int,int,var
#cfunc ChangeDisplaySettings "ChangeDisplaySettingsA" var,int
#cfunc GetDC "GetDC" int
#uselib "gdi32.dll"
#cfunc GetDeviceCaps "GetDeviceCaps" int,int
#define HORZRES 8
#define VERTRES 10
#define BITSPIXEL 12
#define CDS_UPDATEREGISTRY 0x01
*main
dim DevMode,44
sdim DevModeAll,15600
sdim data,1024
//グラフィックモードの情報取得(256個まで)
repeat 256
if(EnumDisplaySettings(0,cnt,DevMode)==0) : break
data+=""+DevMode(27)+" x "+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
gosub *NowDisplay
stop
//グラフィックモードの変更
*ChangeDisplay
memcpy DevMode,DevModeAll,156,0,l*156
ret=ChangeDisplaySettings(DevMode,CDS_UPDATEREGISTRY)
gosub *NowDisplay
return
//現在のグラフィックモード
*NowDisplay
s=""+GetDeviceCaps(GetDC(0),HORZRES)+"x"
s+=""+GetDeviceCaps(GetDC(0),VERTRES)+"\n"
s+=""+GetDeviceCaps(GetDC(0),BITSPIXEL)+"bit"
dialog s,0,"現在のモード"
return