前回(【MFC】CMFCButtonお試し)より、ほぼ一ヶ月ぶりのお試し・・・微妙に忙しいのか、単なるサボリなのかは神のみぞ知るということで。。。
[TestMaskEdit.zip](730kb) ※とりあえず手元にあるXPのみ動作確認。

本日はこれまたお気軽な[CMFCMaskedEdit]クラスを試してみましょう。
エディットボックスで入力制限・・・なんてのはよくある話ですが、今までポチポチ自前で実装してたのが楽になるかと思います。
# よく解らない変なルールに対応するために結局自前で実装・・・なんて方もいるとは思いますが。。。
使い方はそんなに難しくなくて、
※使えるマスク値はこんなかんじ | D | 数値 | | d | 数値orスペース | | + | + or - or スペース | | C | アルファベット | | c | アルファベット+スペース | | A | アルファベット+数値 | | a | アルファベット+数値+スペース | | * | 表示可能な文字 | |
ウイザードでダイアログベースのアプリを作って、ぺこぺこコントロールを張ってOnInitDialog()に以下をしこんでテストテスト。。。
| // マスク① // (1)アルファベットのみ (2)フォーマット指定 m_MaskedEdit1.EnableMask(L" CCCCCCCCCC ",L"[__________]"); // wankuma を入力可能な文字に指定 m_MaskedEdit1.SetValidChars(L"wankuma"); // デフォルトの表示セット m_MaskedEdit1.SetWindowText(L"[wankumawan]");
// マスク② // (1)数値のみ (2)フォーマット指定 m_MaskedEdit2.EnableMask(L" dddd dddd ",L"[DIGIT:____-____]"); // 入力可能文字指定無し ※ただし、入力可能なのは結局数値のみ m_MaskedEdit2.SetValidChars(NULL); // デフォルトの表示セット m_MaskedEdit2.SetWindowText(L"[DIGIT:____-____]");
// マスク③ // (1)数値のみ (2)フォーマット指定 (3)未入力を*にする m_MaskedEdit3.EnableMask(L" ddd ddd ",L"[___.___]",L'*'); // 入力可能文字指定無し ※ただし、入力可能なのは結局数値のみ m_MaskedEdit3.SetValidChars(NULL); // デフォルト表示のセット m_MaskedEdit3.SetWindowText(L"[***.***]"); |
なんとなーく、MFC使いの人には解ってもらえたと思います。
では、また次回!ほげほげ。
