ツリービューの編集エディットのESCとEnterキーについて


ぴょぴょ  2007-09-08 10:34:48  No: 66254  IP: 192.*.*.*

開発環境は Windows XP Home SP2、VC++2003(SDK) です。

[質問]
ツリービューで編集状態にしてエディットボックスにしたときの
ESCキーとEnterキーはどのように取得すれば良いですか?

分かる方がいましたら教えてくれますか。
お願い致します。

編集 削除
RAPT  URL  2007-09-17 22:27:17  No: 66255  IP: 192.*.*.*

LVN_ENDLABELEDIT で処理するだけでは不足?

編集 削除
ぴょぴょ  2007-09-17 22:48:16  No: 66256  IP: 192.*.*.*

>LVN_ENDLABELEDIT で処理するだけでは不足?
不足というよりは Enter キーで編集完了にしたり、
ESC キーで編集の取り消しを行いたいのです。
ちょうどエクスプローラと同じような動作です。

何か情報をお持ちの方が居りましたら教えて下さい。
お願いします。

編集 削除
gak  2007-09-18 16:57:17  No: 66257  IP: 192.*.*.*

「ダイアログに入力を取られて困ってる」と脳内補完した上での回答

----------------
  WNDPROC proc_ = NULL;

  LVN_BEGINLABELEDIT処理() {
      // HWND tree; ツリービューのハンドル
      HWND wnd = SendMessage(tree, TVM_GETEDITCONTROL, 0, 0);
      proc_ = SetWindowLongPtr(wnd, GWLP_WNDPROC, &WindowProc);
  }

  LRESULT CALLBACK WindowProc(HWND wnd, UINT msg, WPARAM wp, LPARAM lp) {
      LRESULT lr = 0;
      switch (msg) {
          case WM_GETDLGCODE:
              return DLGC_WANTALLKEYS;
          default:
              lr = CallWindowProc(proc_, wnd, msg, wp, lp);
      }
      return lr;
  }
----------------

編集 削除