同じプログラム内でバックスラッシュと円が混在する

このQ&Aのポイント
  • Visual Studio 2008でMFCプログラミングをしています。リモートコマンドを送るソフトで、送信したコマンドをRead Onlyのエディットボックスに表示させています。
  • コマンド終わりの「\r」をCStringで文字として表示させるために「\\r」としています。一応、表示はされているのですが、どうも腑に落ちないので質問しました。
  • しかし、作ったプログラムを実行してみたところ、メインのダイアログではバックスラッシュで表示されているのに、ボタンをクリックして表示したサブのダイアログで同じことをすると円マークで表示されるのです。同じプログラム内でそんなことが起こるものなのでしょうか?
回答を見る
  • ベストアンサー

同じプログラム内でバックスラッシュと円が混在する

Visual Studio 2008でMFCプログラミングをしています。 リモートコマンドを送るソフトで、送信したコマンドをRead Onlyのエディットボックスに表示させています。 コマンド終わりの「\r」をCStringで文字として表示させるために「\\r」としています。 一応、表示はされているのですが、どうも腑に落ちないので質問しました。 \は環境によってバックスラッシュまたは円に表示される場合があると思います。 私も別にどちらで表示されても構わないです。 しかし、作ったプログラムを実行してみたところ、メインのダイアログではバックスラッシュで表示されているのに、ボタンをクリックして表示したサブのダイアログで同じことをすると円マークで表示されるのです。 同じプログラム内でそんなことが起こるものなのでしょうか?

noname#157696
noname#157696

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8517/19361)
回答No.1

WindowsのGUIは、コントロールごとに使用フォントを変えられるから、同じウィンドゥ上で、¥と\を混在させる事だって出来ます。 今回は、メインのダイアログは\x5cが\になるフォントがベースフォントになっていて、サブのダイアログは\x5cが¥になるフォントがベースフォントになっているだけ、の話です。 ウィンドゥ上に配置したコントロールは、特に何の指定もしなければ、親ウィンドゥのベースフォントを引き継ぎます。 なので、親ウィンドゥのベースフォントが違っていると、2つのウィンドゥで同じ文字が違うフォントで表示されます。

noname#157696
質問者

お礼

ありがとうございます。ダイアログのプロパティをみたところ、メインダイアログのUse System FontがFalseになっていました! メインだけ他の人が違う環境で作ったものを流用していたことが原因のようです。 Trueにしたら、文字も見やすくなってよかったです。

関連するQ&A

  • バックスラッシュを入力したい

    コマンドプロンプトにバックスラッシュを打ち込みたいのですが、どうやって打てば表示されるのでしょうか? 半角英数状態でキーをおしてバックスラッシュをうとうとすると、\の記号がでてきてしまいます。 あるWEBページの解説にそうしろと書いてあるのですが、できません。よろしくお願いします。

  • バックスラッシュと円マーク

    バックスラッシュと円マーク OS10.5ですがテキストエディタなどで 文字入力の際にトラブルを抱えています。 マッピングを変え強制的に¥の位置でバックスラッシュがでるように設定しています。 しかしいくつかのソフトでは やはり円マークの表示となり困っています。 回避策はありますでしょうか。

    • ベストアンサー
    • Mac
  • バックスラッシュと円記号の同居

    ■ 質問にいたるいきさつ バックスラッシュと円記号を同一ページ内に同居させるばあい、IE であれば <head/> の <meta/> に charset=UTF-8 とかき、<body/> に <p>&#x5c; &#xa5;</p> とすれば、表示上バックスラッシュと円記号がならんでみえます。 Netscape と Opera は <p lang="en">&#x5c; &#xa5;</p> でもだめでした。 Netscape は表示メニューの文字コードを ISO-8859-1 にすれば、バックスラッシュが表示されます。 Opera はどうやってもバックスラッシュが表示されません。 ■ 質問 Netscape や Opera をつかってページをみるひとにもバックスラッシュをみせるにはどうすればいいでしょう。 できれば、ページをみているひとに「文字のエンコードをかえてみてください」とはいいたくありません。 できれば、全角のバックスラッシュはつかいたくありません。 できれば、画像はつかいたくありません。 このようなわがままを実現する方法があればおしえてください。 ■ 実験してみた環境 OS: Win XP IE 6 Opera 7.20 Netscape 7.1 いずれも日本語版

  • アップロードするとバックスラッシュが円記号になる

    タイトルの文字制限で上手くかけませんでしたが、PHPファイルをサーバーにアップロードすると、半角バックスラッシュが半角円記号に置き換わってしまいます。 元のファイルはUTF-8で保存、ちゃんと半角バックスラッシュで表示されていますが、サーバーにアップロードしたものを開くと半角円記号に置き換わっています。 このせいでPHPエラーが出てプログラムが機能しません。 アップロードしたファイルを編集すれば機能するのですが、HP作成ソフトのプラグインの中のファイルなので、アップロードする度に修正するのが非常に手間です。 回避策があればよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • スタイルシートで円マークがバックスラッシュに

    スタイルシートを使って半角の円マークを使ったら、 バックスラッシュで表示されてしまったのですが、 回避する方法はないでしょうか?

    • ベストアンサー
    • HTML
  • VS2012での\(円マーク)とバックスラッシュ

    VS2012のVBでコードを書きはじめました。OSはWin7(x32) 日本語です。 ファイルを呼び出そうと思っても呼べずに困っています。 FileName = "c:\textfile.txt" ret = LoadFile(FileName) としたときに、”textfile.txt“にアクセスできないのは、デバッグモードで実行したときに”\”がバックスラッシュとして扱われているからではないかと疑っています。 原因を探っていくうちに下記を疑い始めました。 Dim FileName As String FileName = "\" として、デバッグモードでFileNameの値を見ると円マークではなくバックスラッシュになっています。 しかし、FileNameの値をテキストボックスに出力させると円マークです。 (1)このような状態でもパス名に問題は無いのでしょうか ⇒どちらも同じASCIIコード92だから、内部で92を渡すだけだから問題ない? (2)Visual studio内でキーボードを選択する部分があるのでしょうか?

  • 「バックスラッシュの記号5,164」になります。

    ソースでは\5,164としているのですが 実際ブラウザで表示すると 「バックスラッシュの記号5,164」になります。 でもブラウザでの表示をコピーして貼り付けると円マークになります。 ブラウザでも縁マークで表示するにはどうすれば良いでしょうか? win7、IE11です。

    • ベストアンサー
    • HTML
  • Windows PEのCMDでバックスラッシュ入力

    動作環境 ASUS Vivobook S400CA CPU Core i5-3317U RAM 4GB Windows 8.1 64bit タイ語/英語キーボード (101 Enhanced キー配列;横長の四角いEnterキーの上にバックスラッシュ表示のキーがあります) 「設定チャーム」>「PC設定の変更」>「保守と管理」>「回復」の中にある、 「PCの起動をカスタマイズする」をクリックしてコマンドプロンプトを立ち上げます。 その画面上でディレクトリー指定やコマンドを打とうとすると、何故かバックスラッシュ(\)が打てません。 どうも認識されているキー配列が違うらしく、例えば「Shift」+「2」キーを押すと「”」が打たれて、 日本語キー配列になっているようです。 このWindows PEのコマンドプロンプト(cmd)に直接バックスラッシュ(\)を入力する方法、 USキー配列に変更する有効なコマンド(usコマンドは効かないです)がありましたらお教え頂けないでしょうか? ちなみに、通常起動したWindows 8.1上で、日本語キー配列にしてバックスラッシュ(\)を打とうにも 本来日本語キーボードの「\」キーが位置するところにはキーが存在しなくて、直接バックスラッシュ(\)が打てるキーが見当たらない状況です。 ただ、これはシステムのレジストリ設定でキー配列を”US 101 Enhancedキーボード”に変えてやると キーボード表示通りのキーで直接バックスラッシュ(\)が打つことができるようになり、 Windows8.1のシステムツールよりコマンドプロンプト上では、USキー配列で直接バックスラッシュ(円マーク)が打てます。 他の質問&回答は一通り目を通しておりますが、解決策は見つかりませんでした。

  • 日本語環境下でのバックスラッシュの表示

    Perlの勉強を始めたばかりのものです。Windows Me環境でエディタを使ってPerlのプログラムを書きたいのですが、バックスラッシュが「¥」の記号になってしまい、どうすればいいのかわかりません。日本語環境下で半角のバックスラッシュを表示する方法を教えてください。

    • ベストアンサー
    • CGI
  • Word2007 バックスラッシュをマクロで表示

    XPsp3 で Word2007 Pro を使用しています。 バックスラッシュ(アスキーコード&h5C)を "\"に変えずに、バックスラッシュのまま、 表示させる処理について教えてください。 人がオペレーションするには Wordのオプション中の 「バックスラッシュを円記号に変換する」 をアンチェックにすればOKですが、 これをマクロから設定する方法、 あるいはここがCheckedでも ASCII &h5CをASCII &h5Cのフォントのままに表示させる方法は あるでしょうか? よろしくお願いします。 (マクロ記録とOptions Objectメンバのブラウズ  はしてみましたがわかりませんでした)

専門家に質問してみよう