文字列の右詰めについて

解決


おまる  2007-06-26 20:22:39  No: 65495

以前、テキスト入力時に###,###,##0型で表示する方法を
教えていただいたものです。

金額表示したものを表示する際、
ラベルで表示される値は右詰めの設定が出来ました。

しかし、テキストで入力された値に対して右詰めになりませんでした。
対処として、左側へ空白を入れてみたのですが、
右詰め表示されているラベルの項目と、テキストの項目では、
位置が若干ずれてしまいます。

なので、他に右詰めにできる方法があれば教えていただきたいです。


夏みかん  2007-06-26 23:53:41  No: 65496

>ラベルで表示される値は右詰めの設定が出来ました。

テキストの入力も同じく右詰の設定が出来ます。
エディットボックスのスタイルをリソースエディタで変更して下さい。
または ES_RIGHT スタイルをつけて下さい。

http://yokohama.cool.ne.jp/chokuto/urawaza/prm/ctl_style.html


おまる  2007-06-27 00:57:52  No: 65497

>テキストの入力も同じく右詰の設定が出来ます。
>エディットボックスのスタイルをリソースエディタで変更して下さい。
>または ES_RIGHT スタイルをつけて下さい。

ご回答ありがとうございます。
すみません、上記の処理を行っても
右詰めにならないのですが。。


RAPT  URL  2007-07-06 09:23:56  No: 65498

環境も、書いたコードもな〜んも書かれてないのに
どうやって答えろと?


おまる  2007-07-12 00:20:59  No: 65499

返信が遅れて大変申し訳ありません。
環境・現状は以下のとおりです。 

------------------------------------------------------
<環境>

OS:Microsoft Windows XP+Service Pack2

開発環境:Microsoft eMbedded VisualC++ 4.0
 

<設定内容>

Editbox右クリック→プロパティ(Editプロパティ)→
スタイル→テキストの配置→"右端"

 
<現象>

実行時のみ、Editboxが右詰にならない。

 
------------------------------------------------------


s  2007-07-12 20:13:45  No: 65500

表示させようとしている文字列が
こんな風になっているってことはないですか?
"1,234,567     "

eVC4.0で拡張スタイル変更してみましたが
正しく表示されました。(エミュですけど)

//  m_editはClassWizardでコントロールとして定義

    TCHAR* buf1 =_T("1,234,567");
    TCHAR* buf2 =_T("1,234,567     ");

//    m_edit.SetWindowText(buf1);
    m_edit.SetWindowText(buf2);

    for(int i=0;buf2[i] != '\0';i++) {
        TRACE(_T("%.2x "),buf2[i]);
    }

こんな感じでTRACEでも入れて表示しようとしている
文字を確認してみてください。

#デバッグウィンドウを見るとこんな感じで出力されます。
#31 2c 32 33 34 2c 35 36 37 20 20 20 20 20


おまる  2007-07-13 02:52:51  No: 65501

ご回答ありがとうございます。

右詰にならない原因は、
Editbox右クリック→プロパティ(Editプロパティ)→複数行に、
チェックが付いていなかった為でした。

ご回答して頂いた内容は、今後の参考にさせて頂きます。
どうもありがとうございます。


おまる  2007-07-13 02:53:30  No: 65502

ご回答ありがとうございます。

右詰にならない原因は、
Editbox右クリック→プロパティ(Editプロパティ)→複数行に、
チェックが付いていなかった為でした。

ご回答して頂いた内容は、今後の参考にさせて頂きます。
どうもありがとうございます。


s  2007-07-13 07:35:25  No: 65503

え、そうかな・・・
どっちでも出来た気がしたけど
明日確認して報告します。


夏みかん  2007-07-13 16:56:58  No: 65504

Windows のバージョンによっては ES_RIGHT が有効にならないのがあるようだ。
Windows XP では右寄せになる。Windows NT でも SP3 なら修正されているようだ。
それ以外の Windows 95、98、Me などは複数行のみ ES_RIGHT が有効になるようだ。

参考文献:
http://support.microsoft.com/default.aspx/kb/167118/ja
http://madia.world.coocan.jp/cgi-bin/DelphiBBS/wwwlng.cgi?print+200405/04050070.txt


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加