> などとして Printer.Canvasに文字列を一時ずつ送ったとき
> フォントが重なって下になった文字が見えない部分が出来てしまうのを防ぐ
> 何か良い方法が有るでしょうか?
Fontheiを適切にしたい、という話ではないと思うので。
Canvas.TextOut(Win32APIのExtTextOut)で文字を描画するときは
> 現在選択されているフォント、背景色、および文字の色を使って
> テキストを描画します。
(MSDN LibraryのプラットフォームSDK→ExtTextOutより)
ということになっています。ここで背景の部分はDCの背景
モードが適用されます。Win32APIのSetBkModeを使用して背景
モードをTRANSPARENTに変更して描画するか(この場合は描画
終了後に背景モードを元に戻すことを忘れずに)、同等の効果を
もつCanvas.Brush.StyleをbsClearにして描画するか、いずれかの
方法が有効だと思います。
+=========+=========+=========+=========+=========+=========+=========+
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fuk...@tts-inc.co.jp
+=========+=========+=========+=========+=========+=========+=========+
with Printer do
begin
BeginDoc;
Canvas.Font.Name:=FontCombo.Text;
Canvas.Font.Pitch:=fpVariable;
Canvas.Brush.Style:=bsClear;//フォントの重なりをスケルトンにする
・・・
・・・
with Printer do
begin
BeginDoc;
Canvas.Font.Name:=FontCombo.Text;
Canvas.Font.Pitch:=fpVariable;
SetBkMode(Printer.Handle,TRANSPARENT);//フォントの重なりをスケルトンにする
・・・
・・・