いまのgucciさんのアプローチからは外れてしまいますが、
HSPDXには、自動で画面サイズを拡大/縮小してくれる機能があるので
それを利用すれば、320×240で作成したウィンドウも、任意のサイズに変更できます。
以下に簡単なサンプルを示してみましたが、縦横比は3:4に限らず任意に設定可能ですし、
ちょっと頑張って、Windows APIやsendmsg命令を利用すれば、
ウィンドウ右上の最大化ボタンでの操作や、サイズ可変ウィンドウにも対応できます。
#include "hspdx.as" ;HSP3.2β1以外での動作は確認していません
screen 0, ginfo_dispx,ginfo_dispy ,0 ,0,0:onexit goto *owari
es_ini 512,1024,256:es_screen 320,240,32, 0,1,1:buffer 2,320,240
cls 4:color 255,255,255:repeat 240:pset rnd(320),cnt:loop:es_buffer 1,0,0,2,0 ;背景
cls 4:color 240,255,255:repeat 2:pos cnt,0:mes "(゚ω゚)\n(゚Д゚)\n(^ー^)\n('▽')":loop
es_buffer 2,0,$0,2,0:cw=ginfo_mesx:ch=ginfo_mesy:es_size cw,ch,100
repeat 4:es_pat cnt, 0,ch*cnt:loop:es_area -cw,-ch,320,240:gsel 0:mag=4:snum=64
*puts: repeat snum:pt=cnt:gosub *put1:loop ;顔初期配置
*main: wait 0:sto=stn:stick stn,-1,1 ;キーセンス
if (stn==128) { goto *owari } ;【Esc:終了】
es_exnew pt,0,snum-1:if (pt>=0) { gosub *put1 } ;空き板あれば顔再配置
if (sto==0) {
if (stn==1) { mag-=(mag>0) } ;【右キー:大きく】
if (stn==4) { mag+=(mag<16) } ;【左キー:小さく】
if (stn&10) { mag=4 } ;【上下キー:元に戻す】
sw=80*mag:sh=60*mag:gsel 0:title "w"+sw+" h"+sh:width sw,sh
}
pos 0,0:es_copy 1,0,0,320,240:es_draw :es_sync -16,2
if (stn==2) { goto *puts } else { goto *main }
*owari: es_bye:end
*put1: es_set pt,160-cw/2,120-ch/2,pt&3,0:es_adir pt,rnd(256),rnd(300)+100:return ;顔再配置