PRINT文の出力に色を付ける

 Full BASICにはPRINT文の出力に色を付ける機能は用意されていませんが, (仮称)十進BASICのWindows版(5.3.2以降)では,テキスト出力ウィンドウをWindowsのRichEditコントロールとして扱うことによって文字に色を付けるなどの装飾が可能です。
 次のプログラムは,出力された文字を赤と青に色分けします。
100 DECLARE EXTERNAL SUB SetColor
110 FOR x=1 TO 10
120 CALL SetColor(255,0,0)
130 PRINT x,
140 CALL SetColor(0,0,255)
150 PRINT SQR(x)
160 NEXT x
170 END
180 
190 EXTERNAL SUB SetColor(R,G,B)
200 OPTION CHARACTER Byte
210 SUB SendMessage(hwnd,msg,wparam,lparam$)
220 ASSIGN "USER32.DLL","SendMessageA"
230 END SUB
240 LET EM_SETCHARFORMAT=BVAL("0444",16)
250 LET CHARFORMAT$=CHR$(60) & REPEAT$(CHR$(0),59)
260 LET CHARFORMAT$(8:8)=CHR$(64)
270 LET CHARFORMAT$(21:24)=CHR$(R) & CHR$(G) & CHR$(B) & CHR$(0)
280 CALL SendMessage(WinHandle("RICHEDIT"),EM_SETCHARFORMAT,1, CHARFORMAT$)
290 END sub

外部副プログラムSetColorの引数R,G,Bには0以上255以下の整数を与えてください。

 同様の手法で,斜体,下線,太字などの装飾も可能です。詳細は,WindowsメッセージのEM_SETCHARFORMATの使い方を調べてください。


戻る