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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0202
morino384代理フォントの指定2解決


morino384

リンク

2015/2/2(Mon) 15:17:04|NO.67224

英数字しか含まれていないフォントで

     「あいうABC123」

という文字列を表示しようとしたとき、「ABC123」の部分は、正しいフォントで表示され
ますが、「あいう」の部分は Windows のデフォルトのフォントで表示されてしまいます。

そこでなんですが、その「あいう」の部分を不足分の代理フォントとして別の
フォントを呼び出すことはできるのでしょうか?

HTMLでいうと、

<font face="Segoe UI,Meiryo UI,メイリオ">あいうABC123</font>

みたいに、複数のフォントを同時に使いたいのです!!

(上でいうと、Segoe UI の英数字が最初に優先されて、次に Meiryo UI で
日本語の部分が表示される...みたいな...)



この記事に返信する


774

リンク

2015/2/4(Wed) 19:53:15|NO.67267

標準命令で代理フォントを指定出来るようなものは無かったと思います。
プログラム側で工夫して表示させる事になりそうです。
(フォントリンクを書き換えるのは無しの方向で…

■GUIをIEコンポーネントで構成
・フォント表示に関しては理想的な形で実現出来そうです。
・IEコンポーネント経由なのでUI操作は少し面倒になります。
・IEコンポーネントでGUIを構成できるプログラムに限定されます。

■代理フォントを指定できるMes命令のようなものを作る
・原理としては、文字列を半角部分と全角部分に分解し、フォントを切り替えながら描画します。
 描画位置はginfoでカレントポジション(22,23)と出力サイズ(14)を取得して計算します。
・font命令でのフォント切り替えは処理として重いらしいので、
 代理フォント用にbufferを用意しといた方が良いかも知れません。
・公開も視野に入れる場合、フォントが存在するか・日本語フォントかの判定も必要そうです。
 WinAPI・場合によってはマシン語等も扱う事になるので、ちょっと難しくなります。

■代理フォントの半角文字を指定フォントに置き換えたフォントを造る
・プログラムを通して常にその組み合わせ、なら使えなくも無いかも知れませんが
 基本的に効率悪過ぎます。



morino384

リンク

2015/2/10(Tue) 21:07:11|NO.67359

1番目の方法は複雑であまりわからないので、2番目と3番目の方法で頑張ってみます。
アドバイスありがとうございました!!



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