07/05/08 06:54:30
>>455
ほうほう
#include "User32.as"
WM_TIMER=$113:EM_LINESCROLL=$B6
goto *@f
#deffunc Quit onexit
KillTimer hwnd,1:return
*@
font "MS 明朝",20,1:objmode 2:a="":repeat 30:a+str(cnt)+" ABCDEFGHIJKLMNOPQRSTUVWXYZ"+"\n":loop:mbsizx=96:mbsizy=128
repeat 2:pos cnt*mbsizx,0:mesbox a,mbsizx,mbsizy,(cnt^1)+4:mbid(cnt)=stat:V(cnt)=0:V_old(cnt)=0:H(cnt)=0:H_old(cnt)=0:loop
wait 1:SCIF=28,1|2|4|8|$10,0,0,0,0,0 :gosub *GSR
temp=" ":mesbox temp,1,1,4:t=stat:wait 1:sendmsg objinfo(tempstat,2),EM_LINESCROLL,1:GetScrollPos objinfo(tempstat,2),0
scrsizex=stat:clrobj t,t:oncmd gosub *timersub,WM_TIMER:SetTimer hwnd,1,50,0:stop
*timersub
vscrolf=0:hscrolf=0:sendmsg objinfo(mbid(0),2),0x00B8,0,0
if stat {objprm mbid(1),a:gosub *GSR:H_old(1)=0:H(1)=0: V_old(1)=0:V(1)=0:sendmsg objinfo(mbid(0),2),0x00B9,0,0:hmbno=0:hscrolf=1:vmbno=0:vscrolf=1}
repeat 2:V_old(cnt)=V(cnt):GetScrollPos objinfo(mbid(cnt),2),1:V(cnt)=stat:if V_old(cnt) not V(cnt) {vmbno=cnt:vscrolf=1}
H_old(cnt)=H(cnt):GetScrollPos objinfo(mbid(cnt),2),0:H(cnt)=stat:if H_old(cnt) not H(cnt) {hmbno=cnt:hscrolf=1}:loop
if vscrolf {sendmsg objinfo(mbid(vmbno^1),2),EM_LINESCROLL,0,V(vmbno)-V(vmbno^1):V(vmbno^1)=V(vmbno)}
if hscrolf {
sendmsg objinfo(mbid(hmbno^1),2),EM_LINESCROLL,(H(hmbno)-H(hmbno^1))/scrsizex-(H(hmbno)=0)+(H(hmbno)>smaxsizx)
GetScrollPos objinfo(mbid(hmbno^1),2),0:H(hmbno^1)=stat}
title "id0h("+(H(0))+ ") id1h("+(H(1))+") id1v("+(V(0))+") id1v("+(V(1))+") 水平スクロール最大("+smaxsizx+") 水平スクロール1ブロック("+scrsizex+")"
return
*GSR:GetScrollInfo objinfo(mbid(0),2),0,varptr(SCIF):smaxsizx=(SCIF(3)-SCIF(2)-SCIF(4)):return