• ベストアンサー

textBoxに数値を入力すると円とカンマが自動的につくようにするには?

VisualStudio2005のC++で、textBoxに金額を入力するときに、入力時に「10000」と入力しエンターキーを押すと「10,000円」と表示させるにはどのようなコードにすればいいのでしょうか? (再びtextBoxをフォーカスすると「10000」となるようにしたいです。maskedTextBoxは使わないです)。 もしくは参考にはるURLがお分かりの方いましたらよろしくお願いいたします。

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★アドバイス ・エディットボックスをサブクラスして機能を追加して下さい。  (1)Enterキーが押されたら『10000』文字列を『10,000円』文字列に変更してセット  (2)フォーカスを失ったときは『10000』文字列を『10,000円』文字列に変更してセット  (3)フォーカスになったときには『10,000円』文字列を『10000』文字列になるようにセット ・サブクラス化したときには次のメッセージを処理します。  (1)WM_KEYDOWN  (2)WM_KILLFOCUS  (3)WM_SETFOCUS  これらのメッセージについては次のURLをどうぞ。  http://wisdom.sakura.ne.jp/system/winapi/win32/win64.html→『サブクラス化』  http://wisdom.sakura.ne.jp/system/winapi/win32/win30.html→『キーボードイベント』  http://wisdom.sakura.ne.jp/system/winapi/win32/win33.html→『フォーカスイベント』 ・あとサブクラス化しなくても次の通知コードを処理しても実装できます。  (1)EN_CHANGE  (2)EN_KILLFOCUS  (3)EN_SETFOCUS  http://wisdom.sakura.ne.jp/system/winapi/win32/win66.html→『エディット』  ※エディットボックスが複数個ある場合はサブクラス化して部品化した方が便利です。 ・以上。各メッセージ、通知コードを参考にして下さい。

参考URL:
http://wisdom.sakura.ne.jp/system/winapi/win32/index.html
suffre
質問者

お礼

非常に参考になります!サブクラス化で対応しようと思います。 各リンクもどうもありがとうございました。

関連するQ&A