宮崎@イーストさん、こんばんは。
RESありがとうございます。


宮崎@イーストさん wrote:
>宮崎@イーストです。うー

(うー・・・わんわんわん!!!(怒) と読める・・・ ^_^;)

度々お手数おかけしまして
本当に申し訳ありませんです。

きゃいんきゃいん。(←負け犬)


>WM_SETFOCUS と、WM_COMMAND/xxN_SETFOCUS では意味合いが
>違うものだということにも気付いてください。

あっ・・・。(゜゜;)

馬渕さんも

>このマクロは WM_COMMAND - EN_SETFOCUS を捕捉しますが、

と書かれてますね。
十分に理解できていませんでした。(ごめんなさい~)


>前者は「フォーカスを受けるウィンドウそのものに送られる」、
>後者は「フォーカスを受けたウィンドウから親ウィンドウに送られる」
>ものです。あなたの欲しいのはどっちですか?

こ、後者です・・・。

OnCommandを使用したら
こんな感じで捕捉できました!

----------------------------------------------------------

BOOL Cxxx::OnCommand(WPARAM wParam, LPARAM lParam) 
{

  switch(HIWORD(wParam))
  {
  case BN_SETFOCUS:
    CWnd* wnd = FromHandle((HWND)lParam);
    if(IDOK==wnd->GetDlgCtrlID())
    {
      TRACE("キャッチ成功!!\n");
      return TRUE;
    }
    break;
  }

  return CDialog::OnCommand(wParam, lParam);
}

----------------------------------------------------------

んー、OnCommandって
「子コントロールから通知メッセージが送られたとき」に呼ばれると
ヘルプに書いてありますね。なるほどなるほど・・・。

では、WindowProcは、ウインドウに送られてきたメッセージを
処理する(先ほどの問いでの前者)を処理する場・・・ということでしょうか?

(んー全然使い分けが理解できてなかったなぁ。-_-; 反省。)

# なんかこのあたりのことって断片的には知っていることなのですが、
# それが完全に関連付けられて理解できていないから、
# 指摘されると、あ、あれはこういうことだったのか!
# というのが結構あります・・・。
# (この時、切れていた知識がつながったような感じが・・・)


馬渕さん wrote:
>ボタンの場合は通常のウィンドウ用の
>afx_msg void OnSetFocus( CWnd* ); 
>ON_WM_SETFOCUS(IDOK,OnSetFocus)

OnCommandでキャッチする場合、この上のは
使用しなかったです・・・。

馬渕さんの言いたかったことは
まだ半分しか分かってないかな・・・。(;-;)


宮崎さん、どうもありがとうございました。
学習スピードの遅い、のろまな亀さんですけど、
これからもよろしくお願いいたします。m(_ _)m


# なんのなんの。
# 歩みののろい亀さんだってコツコツ歩けばそのうち・・・!!
# なんちゃって。(^^;)

-----
yoh