by konisi » 2008年3月07日(金) 15:45
basic\prompt.sbpファイル内のCls関数を書き換えるという方法を紹介しておきます。
コード: 全て選択
Macro CLS()(num As Long)
Dim i As Long
Dim hBrush As HBURSH,hOldBrush As HBRUSH
'When parameter was omitted, num is set to 1
If num=0 Then num=1
If num=1 or num=3 Then
'Clear the text screen
For i=0 To 100
FillMemory(_PromptSys_Buffer,255,0)
Next
_PromptSys_CurPos.x=0
_PromptSys_CurPos.y=0
End If
If num=2 or num=3 Then
'Clear the graphics screen
hBrush=CreateSolidBrush(_PromptSys_NowBackColor)
hOldBrush=SelectObject(_PromptSys_hMemDC,hBrush)
PatBlt(_PromptSys_hMemDC,0,0,_PromptSys_ScreenSize.cx,_PromptSys_ScreenSize.cy,PATCOPY)
SelectObject(_PromptSys_hMemDC,hOldBrush)
DeleteObject(hBrush)
End If
'Redraw
InvalidateRect(_PromptSys_hWnd,ByVal 0,0)
End Macro
移植に関する問題があれば、MacroをSubにして、関数名をCls2とするなどしてください。
basic\prompt.sbpファイル内のCls関数を書き換えるという方法を紹介しておきます。
[code]Macro CLS()(num As Long)
Dim i As Long
Dim hBrush As HBURSH,hOldBrush As HBRUSH
'When parameter was omitted, num is set to 1
If num=0 Then num=1
If num=1 or num=3 Then
'Clear the text screen
For i=0 To 100
FillMemory(_PromptSys_Buffer[i],255,0)
Next
_PromptSys_CurPos.x=0
_PromptSys_CurPos.y=0
End If
If num=2 or num=3 Then
'Clear the graphics screen
hBrush=CreateSolidBrush(_PromptSys_NowBackColor)
hOldBrush=SelectObject(_PromptSys_hMemDC,hBrush)
PatBlt(_PromptSys_hMemDC,0,0,_PromptSys_ScreenSize.cx,_PromptSys_ScreenSize.cy,PATCOPY)
SelectObject(_PromptSys_hMemDC,hOldBrush)
DeleteObject(hBrush)
End If
'Redraw
InvalidateRect(_PromptSys_hWnd,ByVal 0,0)
End Macro[/code]
移植に関する問題があれば、MacroをSubにして、関数名をCls2とするなどしてください。