HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0110
やりやりフォント指定を反映させるには2解決


やりやり

リンク

2008/1/10(Thu) 00:13:44|NO.13051

hsp3stdlibのリッチエディトで特定のキーワードなどのフォントを
変えたり色を変えたりしたいと思っています。

外部から取得した文字列を順番に表示していくため、取得した文字列を
最後尾に reditins で追加していくと fontset で指定しても設定が
解除されてしまいます。

例えば以下のようなスクリプトでは、


aiColorR = 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF aiColorG = 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF aiColorB = 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF repeat 8 color aiColorR( cnt ), aiColorG( cnt ), aiColorB( cnt ) fontset hEdit, "MS ゴシック", 12 + cnt * 2, 0 reditins hEdit, "aa" wait 100 loop

2文字の"aa"毎に色と文字サイズが変わって欲しいのですが、
reditinsを呼んだ直後は確かに指定した通りになりますが、
次のreditinsを呼ぶとデフォルト(と思われる)フォントに
変わってしまい、結局最後の2文字のみにしか fontset で
指定したものになりません。

各文字ごとに指定したフォントや色をつけるにはどのように
すれば良いでしょうか。

文字の追加にreditinsを使っているのが間違いなのでしょうか。



この記事に返信する


a

リンク

2008/1/16(Wed) 18:17:22|NO.13097

ちょっと興味があってfontsetのソース覗いてみたけど
EM_SETCHARFORMATの前に、WM_SETFONTもしてるからリセットされてるみたいだよ。

exrichedit.asの156行の
  ;LOGFONT構造体 (2000だと、うまくフォント変更できなかったので追加)
から
  SendMessage hRedit,WM_SETFONT,hfont,1
までを、コメントアウトすればOK。



やりやり

リンク

2008/1/17(Thu) 22:17:45|NO.13111

aさん、回答ありがとうございます。

教えて頂いたようにして試してみたところ、問題なくフォントや
色を変えることができました。

「ちょくとのページ」や「猫でもわかるプログラミング」のリッチ
エディットコントロールの使い方を参考にしてみましたが、EM_SETCHARFORMATの
使い方しか見てませんでした…。

exrichedit.asは該当箇所を#if 0として使っていきます。



ONION software Copyright 1997-2023(c) All rights reserved.