C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 文字列を90度回転させて表示したい


(過去ログ 73 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■42794 / inTopicNo.1)  文字列を90度回転させて表示したい
  
□投稿者/ Y.H (1回)-(2009/10/21(Wed) 14:30:32)

分類:[C/C++] 

Visual Studio2005
Visual C++



CDC* cdc = GetDlgItem(ピクチャコントロールID)->GetDC();

cdc->TextOut(100,100,"bbb");

この"bbb"を90度回転させて表示するにはどうすればいいのですか?
お願いします。
引用返信 編集キー/
■42800 / inTopicNo.2)  Re[1]: 文字列を90度回転させて表示したい
□投稿者/ とっちゃん (424回)-(2009/10/21(Wed) 14:50:07)
とっちゃん さんの Web サイト
No42794 (Y.H さん) に返信

> CDC* cdc = GetDlgItem(ピクチャコントロールID)->GetDC();
>
> cdc->TextOut(100,100,"bbb");
>
> この"bbb"を90度回転させて表示するにはどうすればいいのですか?
> お願いします。

回転というのはどういうものでしょう?
文字のフェースだけを横にして、進行方向は同じままなのでしょうか?
それとも、縦書きにしたいのでしょうか?

あと、90度回転もどっち方向に90度かも重要です。

GDIですので、縦書きであれば、選択フォントの@付きのものを選び
回転(LOGFONT構造体やCreateFontのパラメータ)と向きを90度寝かす(一般的な縦書き方向なら270.0度を指定)ことで
実現できると思います。



引用返信 編集キー/
■42802 / inTopicNo.3)  Re[2]: 文字列を90度回転させて表示したい
□投稿者/ Y.H (2回)-(2009/10/21(Wed) 14:58:44)
No42800 (とっちゃん さん) に返信

回答ありがとうございます。
縦書きでなく文字のフェースだけを横にして、進行方向は同じにしたいです。
反時計回りに90度です。

初心者ですのでよくわからないです。
具体的なコードを書いていただけないでしょうか?
引用返信 編集キー/
■42811 / inTopicNo.4)  Re[3]: 文字列を90度回転させて表示したい
□投稿者/ w.b.g. (1回)-(2009/10/21(Wed) 15:55:26)
No42802 (Y.H さん) に返信
> ■No42800 (とっちゃん さん) に返信
>
> 回答ありがとうございます。
> 縦書きでなく文字のフェースだけを横にして、進行方向は同じにしたいです。
> 反時計回りに90度です。
>
> 初心者ですのでよくわからないです。
> 具体的なコードを書いていただけないでしょうか?

http://glossary.tank.jp/t004C.html
引用返信 編集キー/
■42815 / inTopicNo.5)  Re[3]: 文字列を90度回転させて表示したい
□投稿者/ とっちゃん (425回)-(2009/10/21(Wed) 16:07:27)
とっちゃん さんの Web サイト
No42802 (Y.H さん) に返信

> 回答ありがとうございます。
> 縦書きでなく文字のフェースだけを横にして、進行方向は同じにしたいです。
> 反時計回りに90度です。
>
ということはフォントの向きだけ回転(反時計回りなので左側に文字の上辺が来る)ということですね。


> 初心者ですのでよくわからないです。
> 具体的なコードを書いていただけないでしょうか?

私のポリシーなので載せません。

ということで文章でコード片を書いておきます。
あんまり頭良くないんで、日本語へたっぴで申し訳ないですが、がんばって解読してください。
一応キーワードになりえるものも満載したつもりです。

文字の出力は、フォント(CFont)を作成し、それを出力先(CDC)に選択して(SelectObject)から出力(TextOut)します。
選択状態は後で戻すことも忘れてはなりません。
また、フォントは貴重なシステムリソース(GDIリソースと呼ばれるもの)ですので、不要になったら削除します。

コントロールに出力する際基本となるフォント情報が必要なのであれば、そのコントロール(CWnd)に、フォント情報を問い合わせる(GetFont)ことで情報を取得します。

エンドユーザーが任意に選べるのであれば、フォントダイアログ(CFontDialog)などを利用する方法もあるでしょう。

フォントの作成は、CFont::CreateFont もしくは、CFont::CreateFontIndirect で行えます。
細かなパラメータなどは、VSのコードエディタに CreateFont と入力してそこにカーソルを合わせてF1キーを押せばかなり簡単に調べることができると思います。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -