ダイアログベースの基本形が完成したので、今回のプログラムに合うように変えていきます。
「条件をどのように入力するか」を考えていきます。次のような例を使います。
このデータから「7618075」を抽出する場合、条件は「ゼロ番目が”7618075”と 等しい」です。
これを、今回はカンマを使って、次のように表現します。「0,=,7618075」です。
また、0番目が「7618050」から「7618099」を抽出する場合、次のように表現します。
「0,>,7618050,0,<,7618099」です。
さらに、「7610000」以上で、3番目が「0020」以下の場合、次のように表現します。
「0,>,7610000,3,<,00200」
またはの場合は、「-」を使って次のように表現します。
「-0,<,7618050,3,=,0138」
これで、条件の設定方法が決まりました。後は、動かして覚えてください。
条件の設定方法が決まったので、後は勢いで宣言するだけです。
ダイアログクラスにメンバ変数を追加します。
ここまでで、変数の宣言が終わりです。
次に、ウィザードを使って関数を追加します。ボタンは、もちろんクリックです。
ここまで、追加したらリビルドして実行です。
今回は、まだまだ行きます。
続いて、メンバ関数を追加していきます。アクセス制御はすべて「public」です。
ここで、リビルドして実行です。
さらに、進みます。
「PreTranslateMessage」、「OnOK」、「OnCancel」、「UsSetMsg( int i, CString s )」はまったく同じなので、前のをコピーしてください。
ダイアログクラスの「OnInitDialog」に
// TODO: 特別な初期化を行う時はこの場所に追加してください。
UsParaSet();
UpdateData( FALSE );
return TRUE; // TRUE を返すとコントロールに設定したフォーカスは失われません。
と2行追加します。
UsParaSet、OnBstartは項目抽出のをコピーして修正します。
ここまで、きたらリビルドして実行です。
今日は、ここまでです。
「条件をどのように入力するか」を考えていきます。次のような例を使います。
0 | 1 | 2 | 3 |
7600053 | 高松市 | 田町 | 0001 |
7618044 | 高松市 | 円座町 | 0017 |
7618053 | 高松市 | 西ハゼ町 | 0037 |
7618026 | 高松市 | 鬼無町 | 0088 |
7618075 | 高松市 | 多肥下町 | 0138 |

これを、今回はカンマを使って、次のように表現します。「0,=,7618075」です。


「0,>,7618050,0,<,7618099」です。

「0,>,7610000,3,<,00200」

「-0,<,7618050,3,=,0138」
これで、条件の設定方法が決まりました。後は、動かして覚えてください。
条件の設定方法が決まったので、後は勢いで宣言するだけです。


型 | 名前 | 説明 |
int | m_iKeypos[ 8 ] | 何番目か指定します。 |
CString | m_sKub[ 8 ] | 符号を指定します。 |
CString | m_sKey[ 8 ] | 値を指定します。 |
int | m_iAnd | アンドかオアを指定します。 |
int | m_iKeymax | 項目数の最大値 |
ここまでで、変数の宣言が終わりです。
次に、ウィザードを使って関数を追加します。ボタンは、もちろんクリックです。
PreTranslateMessage |
OnBreenter |
OnBstart |
OnOK |
OnCancel |
ここまで、追加したらリビルドして実行です。
今回は、まだまだ行きます。
続いて、メンバ関数を追加していきます。アクセス制御はすべて「public」です。
型 | 名前 |
void | UsParaSet() |
void | UsParaChk() |
void | UsMain() |
void | UsEndChk() |
void | UsSetMsg( int i, CString s ) |
ここで、リビルドして実行です。
さらに、進みます。
「PreTranslateMessage」、「OnOK」、「OnCancel」、「UsSetMsg( int i, CString s )」はまったく同じなので、前のをコピーしてください。
ダイアログクラスの「OnInitDialog」に
// TODO: 特別な初期化を行う時はこの場所に追加してください。
UsParaSet();
UpdateData( FALSE );
return TRUE; // TRUE を返すとコントロールに設定したフォーカスは失われません。
と2行追加します。
UsParaSet、OnBstartは項目抽出のをコピーして修正します。

ここまで、きたらリビルドして実行です。
今日は、ここまでです。
