- PR -

コピーライト、トレードマークなどの出力方法

投稿者投稿内容
武史
ベテラン
会議室デビュー日: 2007/09/21
投稿数: 71
投稿日時: 2009-04-17 23:18
何が Shift_JIS だとダメなんでしょう?
コードページ?ソースコード?フォント?

とりあえず、普通に VS2005 で、C++ のプロジェクトを作って、
そのラベルに (R) は、ちゃんと表示されますよ。
フォントは、「MSゴシック」です。

一つのラベルの中に、日本語と (R) が同時に表示できます。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2009-04-18 00:56
引用:

武史さんの書き込み (2009-04-17 23:18) より:
フォントは、「MSゴシック」です。


フォントは無関係ですね。コードページの問題です。SJISのコード一覧に丸Cや丸Rが割り当てられていないハズです。CP932でも事情は同じだったように思います。もし(UTF-8でなく)SJISで表現できているのであれば、その16進コードを教えていただけるとありがたいです。
武史
ベテラン
会議室デビュー日: 2007/09/21
投稿数: 71
投稿日時: 2009-04-18 01:36
最初の質問者の書き込みにあるように、U+00AE です。

Shift-JIS でなんて、表現していません。Unicode のソースですから。

普通に、文字コード表で、MS ゴシックの U+00AE を見てもらうなり、
実際に、やってみれば分かると思うんですが。

おっと、出力って画面への出力でいいんですよね?
Azulean
大ベテラン
会議室デビュー日: 2008/01/04
投稿数: 123
お住まい・勤務地: 大阪府
投稿日時: 2009-04-18 18:04
引用:

武史さんの書き込み (2009-04-18 01:36) より:

最初の質問者の書き込みにあるように、U+00AE です。
Shift-JIS でなんて、表現していません。Unicode のソースですから。


質問者はマルチバイト文字セットで実行しており、その前提での解決策を求めているのですから、Unicode文字セットの話を持ち出されても解決しません。

Visual C++ 2005で新規にプロジェクトを作るとUnicode文字セットになるので、前提が異なります。
(プロジェクトのプロパティの全般のところに文字セットの設定があります)


(参考)
Visual C++ 2008でMFCダイアログアプリケーションを作成し、CWnd::SetWindowTextで0xAEを設定した場合、(R)が表示されますが、これはデフォルトがUnicode文字セットだからです。
マルチバイト文字セットに切り替えてリビルドすると ョ になります。

[ メッセージ編集済み 編集者: Azulean 編集日時 2009-04-18 18:15 ]
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2009-04-19 09:56
Jitta様

ダイアログのうえで設定するフォントは現在MS Shell Dlg(これはMS UI Gothicになります)で、問題のコピーライトマークと製品名の部分をソースの中でLOGFONTをつかい、ANSI_CHARSETとTahomaを使用しましたが、いまだに出せません。(英語にしているはずなのになぜ??)たしかに、シンボルマークはコードページをSYMBOL_CHARSETにすれば最悪表示はできるのですが、今度は他の製品名のアルファベットが表示できなくなります。

一番簡単な方法で、一部分をユニコードビルドにソースから指定できるやりかたがあったと思うのですがどなたかご存じないでしょうか?まだそれでできるかどうかはわかりませんが、やる価値はあるかなと思ってます。

Azulean様

おっしゃる通りでございます。一部だけユニコードにすれば簡単なのですが、、
未記入
会議室デビュー日: 2008/06/02
投稿数: 5
投稿日時: 2009-04-20 02:01
MFCは使っていないので分かりませんが、Win32でそのままCreateWindowWを直に呼び出せば
少なくとも2000以降のNT系ではUnicode版のコントロールが作られたと思います.
(NT4以前及び9x系については未確認)

注意点としてこのUnicode版のコントロールにアクセスする場合SendMessageなどもSendMessageW
などUnicode版のAPIを使用しないと正常に動いているように見えて一部機能だけ動かないといった事
があったと記憶しています.

また同様にTextOutWを直に呼べばDCについてもUnicodeのみで有効な文字を表示できる筈です.
(これも2000以降のNT系のみ確認、また(非拡張)メタファイルでは不可、プリンタDC等については
未確認)
武史
ベテラン
会議室デビュー日: 2007/09/21
投稿数: 71
投稿日時: 2009-04-20 14:40
すんません、全然見当はずれな事言ってました。
ぱてお
常連さん
会議室デビュー日: 2008/03/07
投稿数: 41
投稿日時: 2009-04-20 16:15
思うにどうしても文字で出さないといけないんでしょうか?
いっその事画像にしてその位置に配置とかした方が早そうな気もします。

そうでないなら自前でGDI使って描画でしょうか。
マルチバイトの時に同じような事をした事がありますが、
その時は、自前で描画していました。
内容的にはたいした内容では有りませんし。
いっその事、コピーライトやトレードマークの部分は丸ごとGDIで描画した方が
位置合わせが楽かもしれません。

スキルアップ/キャリアアップ(JOB@IT)