screen 1以降のウィンドウはサイズを変更させることができますが、そのサイズ変更を一定の比に保とうとして適当に書いてみたら一応出来てはいるのですがビクビクします
が書いてみたものです
#define WM_SIZE 0x0005 screen 0,200,100 screen 1,1000,600 hwnd1 = hwnd oncmd gosub *windowsize, WM_SIZE hi = 0.6 hi2 = 1.0 / hi repeat redraw 0 color 255,255,255 boxf color line 0,0,1000,600 title strf("%4d,%4d %4d,%4d %4d,%4d",mousex,mousey,int(hi2*mousey),int(hi*mousex),x,y) if mousex >= int(hi2*mousey){ x = int(hi2*mousey) y = mousey } else { ;if mousey >= int(hi*mousex): x = mousex y = int(hi*mousex) } line mousex,-1,mousex,601 line -1,mousey,1001,mousey pos mousex,mousey mes strf(" %4d,%4d",mousex,mousey) color 0,200,0 line x,-1,x,601 line -1,y,1001,y pos x,y mes strf(" %4d,%4d",x,y) redraw 1 await 16 loop stop *windowsize oncmd 0 if wparam = 0{ scrsizex = lparam & 0x0000FFFF scrsizey = (lparam & 0xFFFF0000) >> 16 if scrsizex >= int(hi2*scrsizey){ x = int(hi2*scrsizey) y = scrsizey } else { ;if scrsizey > int(hi*scrsizex) x = scrsizex y = int(hi*scrsizex) } x = limit(x,200,1000) y = limit(y,120,600) title strf("%4d,%4d",x,y) width x,y ;await 16 } oncmd 1 return
実数型を整数に直すときの切り捨てが原因だと思って適当に+1してみたりしたのですが結局変わらず
await 16がコメントアウトになっていますがそれをとってもほんの少しましになるだけです
解決方法や別の方法があったら教えて下さい