私はC++/MFC Windowsアプリケーションで作業しています。数字、日付などのフォーマットが世界中で正しいことを望みます。SetLocaleとWindowsのカスタムデータフォーマット
例:小数点には「、」の区切り記号を使用し、その他にはドットを使用することなどを好む人もいます。私は地元の人々を置く作業を開始
は、私のWindowsアプリケーションの起動時にコマンド:
setlocale(LC_ALL, "");
これは、言語形式で動作し、2番目のパラメータが空の場合、この関数は数字のためにOSにローカル設定をお願いしているため
これはリージョン - >フォーマットでは動作しますが、 "追加設定"では機能しません。たとえば、システムフォーマットがイメージのように英語(米国)の場合、数字の形式が異なる別の言語を使用してリストをフォーマットすると、アプリケーションで動作します。 、私は等の数のinsidetのtexbox、ListCtrlは、小数点の記号の正しい形式を使用することを意味し、「働く」桁区切りなど
しかし、あなたは、「その他の設定で行く場合については
小数点記号のような単一の書式を変更するなど、動作しない形式の言語は変更しないでください。
この場合、「setlocale」関数を使用すると、数字の書式は言語と同じになります。それはカスタムルールに従わない。 Microsoft Excelなどの他のプログラムでは、カスタムルールに従った番号を表示することができます。
私は自分のソフトウェアで同じことができますか? 数値の正しい形式(言語形式+カスタム設定)はどのように得られますか?
おかげ
これは、追加の設定]ダイアログボックスで:
これがどのように役立つかわかりません。 GetLocaleInfoExを使うと、名前で指定されたロケールについての情報を取得できますが、後で何ができるのですか?小数点の区切り文字を取得するとしたら、ソフトウェアでどのように設定できますか?私はGetLocaleInfoExを試して、私のコードで何が起こっているのか見てみましょう... – GiordiX