- - PR -
コピーライト、トレードマークなどの出力方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-04-17 23:18
何が Shift_JIS だとダメなんでしょう?
コードページ?ソースコード?フォント? とりあえず、普通に VS2005 で、C++ のプロジェクトを作って、 そのラベルに (R) は、ちゃんと表示されますよ。 フォントは、「MSゴシック」です。 一つのラベルの中に、日本語と (R) が同時に表示できます。 | ||||
|
投稿日時: 2009-04-18 00:56
フォントは無関係ですね。コードページの問題です。SJISのコード一覧に丸Cや丸Rが割り当てられていないハズです。CP932でも事情は同じだったように思います。もし(UTF-8でなく)SJISで表現できているのであれば、その16進コードを教えていただけるとありがたいです。 | ||||
|
投稿日時: 2009-04-18 01:36
最初の質問者の書き込みにあるように、U+00AE です。
Shift-JIS でなんて、表現していません。Unicode のソースですから。 普通に、文字コード表で、MS ゴシックの U+00AE を見てもらうなり、 実際に、やってみれば分かると思うんですが。 おっと、出力って画面への出力でいいんですよね? | ||||
|
投稿日時: 2009-04-18 18:04
質問者はマルチバイト文字セットで実行しており、その前提での解決策を求めているのですから、Unicode文字セットの話を持ち出されても解決しません。 Visual C++ 2005で新規にプロジェクトを作るとUnicode文字セットになるので、前提が異なります。 (プロジェクトのプロパティの全般のところに文字セットの設定があります) (参考) Visual C++ 2008でMFCダイアログアプリケーションを作成し、CWnd::SetWindowTextで0xAEを設定した場合、(R)が表示されますが、これはデフォルトがUnicode文字セットだからです。 マルチバイト文字セットに切り替えてリビルドすると ョ になります。 [ メッセージ編集済み 編集者: Azulean 編集日時 2009-04-18 18:15 ] | ||||
|
投稿日時: 2009-04-19 09:56
Jitta様
ダイアログのうえで設定するフォントは現在MS Shell Dlg(これはMS UI Gothicになります)で、問題のコピーライトマークと製品名の部分をソースの中でLOGFONTをつかい、ANSI_CHARSETとTahomaを使用しましたが、いまだに出せません。(英語にしているはずなのになぜ??)たしかに、シンボルマークはコードページをSYMBOL_CHARSETにすれば最悪表示はできるのですが、今度は他の製品名のアルファベットが表示できなくなります。 一番簡単な方法で、一部分をユニコードビルドにソースから指定できるやりかたがあったと思うのですがどなたかご存じないでしょうか?まだそれでできるかどうかはわかりませんが、やる価値はあるかなと思ってます。 Azulean様 おっしゃる通りでございます。一部だけユニコードにすれば簡単なのですが、、 | ||||
|
投稿日時: 2009-04-20 02:01
MFCは使っていないので分かりませんが、Win32でそのままCreateWindowWを直に呼び出せば
少なくとも2000以降のNT系ではUnicode版のコントロールが作られたと思います. (NT4以前及び9x系については未確認) 注意点としてこのUnicode版のコントロールにアクセスする場合SendMessageなどもSendMessageW などUnicode版のAPIを使用しないと正常に動いているように見えて一部機能だけ動かないといった事 があったと記憶しています. また同様にTextOutWを直に呼べばDCについてもUnicodeのみで有効な文字を表示できる筈です. (これも2000以降のNT系のみ確認、また(非拡張)メタファイルでは不可、プリンタDC等については 未確認) | ||||
|
投稿日時: 2009-04-20 14:40
すんません、全然見当はずれな事言ってました。
| ||||
|
投稿日時: 2009-04-20 16:15
思うにどうしても文字で出さないといけないんでしょうか?
いっその事画像にしてその位置に配置とかした方が早そうな気もします。 そうでないなら自前でGDI使って描画でしょうか。 マルチバイトの時に同じような事をした事がありますが、 その時は、自前で描画していました。 内容的にはたいした内容では有りませんし。 いっその事、コピーライトやトレードマークの部分は丸ごとGDIで描画した方が 位置合わせが楽かもしれません。 |