2011-01-25 12 views
1

私は、Uniscribeの新機能ですので、これはダムの質問ではないことを願っていますが、私は他の場所で解決策を見つけることができませんでした。だから、ここに行く...Uniscribe APIを使用してフォントの幅を調整する方法

私はUniscribe APIを使用してフォントの幅を減らそうとしています。すなわち、特定の高さの特定のフォントが与えられた場合、私は各文字の幅(およびすべての関連する間隔)をユーザー定義のパーセンテージで縮小できるようにしたいと考えています。

現在のフォントに対してLOGFONT構造体を取得し、lfWidthフィールドを元の値の割合に調整することで、Uniscribe関数を呼び出すことなく正常にこれを達成しました。私はこれがちょうど平均の文字幅であることを理解していますが、望みの結果があるようです。

しかし、Uniscribeを使用して同じことをしようとすると、lfWidthフィールドがScriptShape()の呼び出しに続いて0にリセットされていることがわかりました。その結果、レンダリングされたテキストはすべて、元の幅で出力されます。私はなぜこれが何であるか、それを回避するために何をすべきかを説明することができない。

誰かが私がやろうとしていることを実行することが可能かどうか考えている人はいませんか?

答えて

0

here(グリフ情報の生成セクションを参照)を開始し、thisにつながれます。

希望すると助かります!

+0

ありがとうございます。 SciptShape()は失敗コードを返さないので、現在ロードされているフォントが受け入れ可能であると仮定します。 ScriptPlace()への後続の呼び出しも成功します。以前に割り当てたカスタマイズされた値ではなく、lfWidthに値0を使用することになります。 –

+0

私は解決策を見つけたと思う!現在選択されているフォントの調整は、少なくともその幅の点で、ScriptShare()の呼び出しの後* * ScriptPlace()の呼び出しの前*に行う必要があるようです。 @memar0x0309によって提供されたリンクは、私が最後にそこに着くのを助けました。それで、ありがたいことです。 –

関連する問題