2017-03-08 1 views
0

私はC++/MFC Windowsアプリケーションで作業しています。数字、日付などのフォーマットが世界中で正しいことを望みます。SetLocaleとWindowsのカスタムデータフォーマット

例:小数点には「、」の区切り記号を使用し、その他にはドットを使用することなどを好む人もいます。私は地元の人々を置く作業を開始

は、私のWindowsアプリケーションの起動時にコマンド:

setlocale(LC_ALL, ""); 

これは、言語形式で動作し、2番目のパラメータが空の場合、この関数は数字のためにOSにローカル設定をお願いしているため

これはリージョン - >フォーマットでは動作しますが、 "追加設定"では機能しません。たとえば、システムフォーマットがイメージのように英語(米国)の場合、数字の形式が異なる別の言語を使用してリストをフォーマットすると、アプリケーションで動作します。 、私は等の数のinsidetのtexbox、ListCtrlは、小数点の記号の正しい形式を使用することを意味し、「働く」桁区切りなど

enter image description here

しかし、あなたは、「その他の設定で行く場合については

小数点記号のような単一の書式を変更するなど、動作しない形式の言語は変更しないでください。

この場合、「setlocale」関数を使用すると、数字の書式は言語と同じになります。それはカスタムルールに従わない。 Microsoft Excelなどの他のプログラムでは、カスタムルールに従った番号を表示することができます。

私は自分のソフトウェアで同じことができますか? 数値の正しい形式(言語形式+カスタム設定)はどのように得られますか?

おかげ

これは、追加の設定]ダイアログボックスで:

答えて

0

enter image description hereは、MSDNのトピックを見てみましょう: "Using National Language Support " - >" Working with Custom Locales"。 GetLocaleInfoExも試してみてください。

+0

これがどのように役立つかわかりません。 GetLocaleInfoExを使うと、名前で指定されたロケールについての情報を取得できますが、後で何ができるのですか?小数点の区切り文字を取得するとしたら、ソフトウェアでどのように設定できますか?私はGetLocaleInfoExを試して、私のコードで何が起こっているのか見てみましょう... – GiordiX

関連する問題