リストビュー上のエディットボックスの処理について


sel  2006-10-12 00:43:52  No: 63272

こんにちは。
リストビューで任意のセルを(EXCELのように)入力したいのですが、ちょっと行き詰っています。

セルのRECTを取得して子ウィンドウでエディットボックスを

    m_hEdit = CreateWindow("EDIT", m_Data.pRow[iRow].pItem[iCol].pszText
                            , WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_AUTOHSCROLL
                            , rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top+1
                            , m_hWnd, NULL, hInstance, 0);

という感じで作ると、入力するところまでは問題ないのですが
ESCキーやRETURNキーの判定がいまいちできません。。
サブクラス化というのも考えましたが、その場合まずリストビューからサブクラス化しないといけないのでしょうか?

この方向性でいいのか、他にいいやり方やセオリーみたいなのがあるのかアドバイス頂けると助かります。
よろしくお願いします。


sel  2006-10-12 00:46:19  No: 63273

また書き忘れました(汗
VC6.0++ SP6 (MFC無し) です。


sel  2006-10-12 20:07:09  No: 63274

ESCキーやRETURNキーの動作は、
モードレスダイアログを作成してその上にエディットボックスを作成することで、一応実現できました。
これで一応はEXCELのような任意セル入力ができるようになりました。

ただ、ダミーのダイアログリソースを用意しなければいけなかったり、
ダイアログプロシージャを実装しなければいけなかったり、
ウィンドウプロシージャでこのダイアログメッセージを分けないといけなかったりと
完全な部品化ができないんですよね、このやり方だと。

とりあえずもう少し考えてみます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加