ページ 11

DXライブラリの文字列を回転して表示させたい

Posted: 2010年1月20日(水) 11:18
by ジャーニー
お世話になっております

DXライブラリでフォントハンドルを用いて文字列を描画するDrawStringToHandleという関数があります.
この関数を用いて文字列を描画するのですが,普通に描画すると文字列が水平に表示されてしまいます.
文字列を水平に描画するのではなく,傾けたり,垂直に描画したいです.

1つの方法としては画面に文字列を描画して,それを画像にしてから貼り付けるという方法がありますが,
もっと簡単にできる方法はないでしょうか.

よろしくお願いします.

Re:DXライブラリの文字列を回転して表示させたい

Posted: 2010年1月20日(水) 11:57
by Ma
斜め等はジャーニーさんがおっしゃるような、なんらかの方法で一度キャプチャしないとだめかもしれません。

ただ、日本語のように縦文字ならかけます・・・。
extern int DrawFormatVStringToHandle( int x, int y, int Color, int FontHandle, const char *FormatString, ... ) ; // 書式指定文字列を描画する
といっても、これでは文字の並び方も変わっちゃうので求めているような描画はできないでしょうが・・・。

少なくとも私が知っている方法は一度画像ハンドル(ソフトイメージハンドルか、イメージハンドルとか)作る必要があります。

Re:DXライブラリの文字列を回転して表示させたい

Posted: 2010年1月20日(水) 13:40
by ジャーニー
>Maさん

回答ありがとうございます.
傾けるのはできたらいいなという程度で,やりたいのは垂直表示なのでその関数を使ってみると思ったように垂直になりました.
ただ,DrawStringToHandleにも隠し引数で垂直フラグがあったのですが,どちらも時計回りに90度回転するだけでした.
反時計回りにも90度回転させる方法はないものでしょうか?

Re:DXライブラリの文字列を回転して表示させたい

Posted: 2010年1月20日(水) 14:03
by Ma
ありゃ、縦書きになると思ったのは勘違いだったみたいですね、すいません。
もしかしたらフォントに依存するのかも・・・?

反時計周りは分かりません。
やはりこれ以降は画像として扱わないと難しいのかも。

Re:DXライブラリの文字列を回転して表示させたい

Posted: 2010年1月20日(水) 14:30
by ジャーニー
>Maさん

やはり画像で扱うしかないみたいですね.
縦書きになるのは縦書きフォントを使用した場合になりますので,普通のフォントであれば文字が回転するようです.
ありがとうございました.

Re:DXライブラリの文字列を回転して表示させたい

Posted: 2010年1月20日(水) 14:46
by ジャーニー
解決を忘れてました