VC++ MFC ダイアログベースです。
・ダイアログの中にいくつかのエディットボックスがあり、それぞれのエディットボックスは
フォーカスを取得した時に、エディットボックスの中身を取得し、
フォーカスを失った時に、エディットボックスの中身が変更されていたら処理を行う。
と言うプログラムを書こうと思っています。
但し、IDCANCELや、右上の×で閉じられた時は、変更があったとしても
処理をしないでダイアログを閉じたいのですが、
どうしても処理を行ってしまいます。
IDCANCELや、右上の×を回避するには、どのような手段があるのでしょうか?
よろしくお願いいたします。
void CMyDlg::OnSetfocusEdit1()
{
//フォーカスを取得した時に、エディットボックスの中身を保存
}
void CMyDlg::OnKillfocusEdit1()
{
//フォーカスを失う時に、値の変更があったかチェックし、
//変更があった場合は処理を行い。
//変更が無かった場合は何もしない。
}
変更前の状態に戻すを適宜呼び出すことになりそうです。
そもそも「フォーカスを失ったら直ちに保存する」必要があるか、再考してはいかがで
しょう。
επιστημηさんありがとうございます。
>そもそも「フォーカスを失ったら直ちに保存する」必要があるか、再考してはいかがで
>しょう。
処理を行うタイミングですが、
ファーカスを失ったときOnKillfocusEdit1() だったのを、
新しく「確定キー」を作成して、確定キーが押下された時に、
処理を行うように書き直してみようと思います。
解決チェックしていませんでした。