いつもお世話になっています。
環境は、Win2000(SP2), VC6(SP5), MFC です。
現在、コントロールを配列番号で処理するコードを記述中なのですが、メッセージ毎に各コント
ロールのメンバ関数を記述するとコードが増えるばかりではなく、解りにくくなるので、VBの
ようしています。
で、ボタンの[OnClickedButton]処理はちゃんと動作するのですが、エディットボックスのロ
ストフォーカス処理が機能しません。何故なのでしょうか?
コーディングが悪いのであれば、指摘してください。よろしくお願いします。
下記にコードを記します。
ヘッダー側
//{{AFX_MSG(CHogeDlg)
//}}AFX_MSG
afx_msg void OnClickedButton( UINT nID );
afx_msg void OnKillfocusEdit( UINT nID );
DECLARE_MESSAGE_MAP()
ソース側
//{{AFX_MSG_MAP(CHogeDlg)
//}}AFX_MSG_MAP
ON_CONTROL_RANGE(BN_CLICKED, IDC_BTN, IDC_BTN, OnClickedButton)
ON_CONTROL_RANGE(BN_KILLFOCUS, IDC_EDIT, IDC_EDIT, OnKillfocusEdit)
void CHogeDlg::OnKillfocusEdit( UINT nID )
{
ここでブレイクポイントを設けて、フォーカスを移動してもブレイクしません。
}
ソース側
>BN_KILLFOCUS
エディットですよね。
はい、エディットボックスです。
やはり、メッセージが違いますか?
でも、コンパイルでは何も指摘されないのですが・・・
コンパイラは型チェックはしても値の妥当性まではチェックしてくれないと思います。
エディットコントロールなら EN_* を使います。
Bunさん、saraさん、レスありがとうございます。
早速、
ON_CONTROL_RANGE(EN_KILLFOCUS, IDC_EDIT, IDC_EDIT, OnKillfocusEdit)
としてみたのですが、やはり、ブレイクしてくれません。
どうしてなのでしょうか?
>やはり、メッセージが違いますか?
エディットですから。
EN_KILLFOCUS = エディットノティファイ_KILLFOCUS でわ?
BN_HOGEHOGE はボタンノティファイ(ボタン通知ホゲ)の略です。
#試してませんけど。
>でも、コンパイルでは何も指摘されないのですが・・・
これはしょーがないですよねェ。指摘がなくっても。
すいません。できました。
ありがとうございました。
何故出来なかったのかを報告します。
試したコントロールだけ、たまたま、ClassWizardでメンバ関数を作成していたのでした。
クリリンさん
すみません、何が悪くてブレイクしなかったんでしょうか?
Bunさん、解決の時に書かなくてすいませんでした。
あの時は、一つだけ、ブレイクしていなかったのですが、質問的には解決したので、
まずは、解決・・・と思い、こちらの問題が解決してから、後に報告をしようと思ったもの
で・・・
すんません、またかぶっちゃいました。m(__)m
>何故出来なかったのかを報告します。
了解です。(^_^;