CEditコントロールのプロパティに「番号」というオプションがあるので、ユーザーがこのテキストボックスに非桁の文字を入力するのを防ぐことができます。 オプション '番号'がある場合、おそらくオプション '番号'のような単純なCEditの先行ゼロを削除する方法があると思います。MFC - CEdit番号コントロールの先行ゼロを削除します
私は、自動的に先行ゼロを削除することを期待してDialog Data Exchangeを試しましたが、それはできません。
次に、これを行う方法は、各CEdit番号コントロールのEN_KILLFOCUSメッセージを追加することだと思いますが、それは使い果たされています。
私はEN_KILLFOCUSを追加するより良い方法だと思うが、すべてのCEdit番号コントロールは、現在のコントロールの先頭のゼロを削除するこの関数でフォーカスイベントポイントを1つの機能を失うが、C# C++で '現在の'コントロールを取得できますが、サポートされているかどうかはわかりません。
CEditを継承するCEditを継承してフォーカスを失う実装は先行ゼロを削除しますが、このソリューションではVisual Studioデザインウィンドウでデザインすることはできません。私はより良い方法がある場合は、私が確認する(EN_KILLFOCUS)の最終的な解決策を適用する前に、とにかく
(&ドロップ問題を描画するためのソリューションがある)this solutionと同様のソリューションがある願っています - 少なくともは、再利用を実装しますMFCの既存の実装
ちょっと説明して先行ゼロを削除する:CE001コントロールに00001を入力してフォーカスを失った場合、CEditコントロールには次のように表示されます。1.そのセルに数値を入力すると、MS Excelのようになります。