#88BASICで、
画面がいっぱいになって、
その後のプログラムが読まれないで停止してしまいます。
プロンプト画面をスクロールできればいいと思うんですが
できますか?
プロンプト
#N88BASICの間違いだとは思いますがそこはスルーして置きまして、どのような状態になっているのかがよくわかりません。
とりあえず関数作ってみました。
第一引数~第四引数でスクロールする範囲を決めます。
第五引数と第六引数は、それぞれx,y座標に対してどれだけスクロールさせるか決めます。
注意点:Promptモードで動かしてください。
ノーマルウインドウモードで使用する場合は、関数内2行目のGetDCの第一引数を変更すればおそらく動きます。
何度も連続で使用すると、まれにウインドウがおかしくなります。何度もそのような状態になるようでも、僕には回避方法がわかりません。ご了承ください。
サンプル
ちなみに、描画可能な点のうちの一番左上の点を(0,0)にしてあるので、左の端に押し込めてしまう場合は第一引数を-1に、上の端に押し込めたい場合は第二引数を-1にしてください。
コード: 全て選択
Sub Scrool(dx As Long,dy As Long,Width As Long,Hight As Long,sx As Long,sy As Long)
Dim hDC As HDC
hDC=GetDC(_PromptSys_hWnd)
BitBlt(hDC,dx+1,dy+1,Width-1,Hight-1,hDC,dy-sx+1,dy-sy+1,SRCCOPY)
End Sub
第一引数~第四引数でスクロールする範囲を決めます。
第五引数と第六引数は、それぞれx,y座標に対してどれだけスクロールさせるか決めます。
注意点:Promptモードで動かしてください。
ノーマルウインドウモードで使用する場合は、関数内2行目のGetDCの第一引数を変更すればおそらく動きます。
何度も連続で使用すると、まれにウインドウがおかしくなります。何度もそのような状態になるようでも、僕には回避方法がわかりません。ご了承ください。
サンプル
コード: 全て選択
#N88BASIC
Sub Scrool(dx As Long,dy As Long,Width As Long,Hight As Long,sx As Long,sy As Long)
Dim hDC As HDC
hDC=GetDC(_PromptSys_hWnd)
BitBlt(hDC,dx+1,dy+1,Width-1,Hight-1,hDC,dy-sx+1,dy-sy+1,SRCCOPY)
End Sub
Do
PSet(40,40),7
Scrool(1,1,600,400,1,1)
Loop
おまけ [ここをクリックすると内容が表示されます]
コード: 全て選択
#N88BASIC
Dim i As Long,j As Long
Sub Scrool(dx As Long,dy As Long,Width As Long,Hight As Long,sx As Long,sy As Long)
Dim hDC As HDC
hDC=GetDC(_PromptSys_hWnd)
BitBlt(hDC,dx+1,dy+1,Width-1,Hight-1,hDC,dy-sx+1,dy-sy+1,SRCCOPY)
End Sub
randomize
i=0
j=Int(Rnd()*20)
Locate 40,j
Print "a"
Do
Scrool(-1,-1,600,400,-1,0)
Sleep(100)
If i=10 then
i=0
j=Int(Rnd()*20)
Locate 40,j
Print "a"
End If
i+=1
Loop
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。