エラーのメッセージの変更

[戻る]
ヒロ 2002/02/12(火) 11:21:11
初めまして。
今まで、VBはやった事があり、最近VC++6.0をやり始めたのですが、
エディットボックスに対して、メンバ変数を使用した時の
UpdateData(TRUE)においてのエラーのメッセージを変更する事など、
出来るのでしょうか?ご存知の方がいらしたら教えてください。
よろしくお願いします。

TAKA 2002/02/12(火) 11:31:00
> UpdateData(TRUE)においてのエラーのメッセージを変更する事など、
> 出来るのでしょうか?ご存知の方がいらしたら教えてください。

UpdateData自体の機能は簡単なものなので、自作してエラーメッセージ
を抑制したり、自分自身でメッセージボックスをだすという方法なら可能
です。

他にも方法があるかもしれませんが・・・。

ヒロ 2002/02/12(火) 12:03:50
[[解決]]
TAKAさんお返事ありがとうございます。

> UpdateData自体の機能は簡単なものなので、自作してエラーメッセージ
> を抑制したり
とありますが、実際どのようにやったらいいのかがよくわかりません。
よろしければ、例などを書いて教えていただければ嬉しいです。

クリリン 2002/02/12(火) 13:24:28
どうもです。VBをやってたのなら、エラー処理のところにこういったメッセージボックスを
表示する・・・って記述したら、わかるでしょうか?

    CString Str;

    Str = "";
    Str = Str+ _T("エラーがありました。\n\n");
    Str = Str+ _T("タイトル名 : XXXXXX");
    MessageBox(Str, "エラーメッセージ" , MB_OK);

ただし、「MessageBox」の引数は使い方が、何処でこの関数を呼んでいるかによって多少、
引数の数が違いますので、詳しくはHELPの[VC++ ドキュメント]と[プラットフォーム SDK]の
両方を見比べながら参考にして下さい。

TAKA 2002/02/12(火) 13:25:30
> とありますが、実際どのようにやったらいいのかがよくわかりません。
> よろしければ、例などを書いて教えていただければ嬉しいです。

void クラス名::自作関数(
                bool 判定  // false 反映 true 取得
                      ) 
{
    CString strTmp;
    if (取得) {
        //  値チェック
        //  テキストボックス等よりデータ取得
        //  GetWindowText 等で取得 

        //  値が自分でエラーと判断した時
        if (エラー) {
            // メッセージボックス表示等
            // データをここで戻したりする
            m_IsLookUp = false;    // エディットボックス変更監視 停止
            // データをセットしたりする
            m_IsLookUp = true;     // エディットボックス変更監視 再開
        }
    }
    else {
        UpdateData(false);    // データを変数へ
    }
}

void クラス名::OnChangeEbTarget()  // 変更がエディットボックスなら
{
    if (m_IsLookUp) {  // 変更監視中は無視(2重呼出防止)
        自作関数(true); 取得
    }
}

だいたいこんな感じですが、とりあえず、UpdateData
をよびたいところで、自作関数を呼ぶようにするだけです。
OnOK();
とか、チェンジボックスとかで・・・
いろいろつかうなら、エディットボックス等の派生クラスを作成して
つかうと便利です。
参考程度と考えてください。

クリリン 2002/02/12(火) 13:42:08
変なこと書いてすいません。m(__)m

ヒロ 2002/02/12(火) 15:15:17
[[解決]]
TAKAさん、解決にチェックしてしまたにもかかわらず、
返事いただきありがとうございます。
説明を参考にどうにか解決の目処がたちました。
本当にありがとうございました。
あと、クリリンさんも返事を書いていただいた事に
感謝してます。

古いスレッドには追加発言できません。