リストビューのアイテムを編集状態にするには?

[戻る]
keichan [E-Mail] 2006/06/28(水) 13:20:07
お世話になります。
keichanです。

XP Pro + VC6 SDKで開発を行っております。

タイトルの通り、リストビュー(リスト表示)のアイテムをプログラムから
編集状態に移行したいと考えております。

static LV_DISPINFO disp_info;
disp_info.hdr.code = LVN_BEGINLABELEDIT;
dispinfo.hdr.hwndFrom = hwnd;
disp_info.hdr.idFrom = IDC_LISTVIEW_1;
ListView_GetItem(GetDlgItem(hwnd, IDC_LISTVIEW_1), &disp_info.item);
SendMessage(hwnd, WM_NOTIFY, IDC_LISTVIEW_1, reinterpret_cast<LPARAM>
(&disp_info));

と書けば編集状態になってくれるのかな?
と思い実行させましたが、期待した結果にはならず、何も変化がありませんでした。

そこでSpyを使って編集状態になった時のメッセージを捕捉してみると
WM_PARENTNOTIFYメッセージでWM_CREATEを呼び出されており(子ウィンドウが作成されて)、
その後LVM_GETEDITCONTROLメッセージでWM_PARENTNOTIFYメッセージで作成された子ウィンド
ウの
ハンドルを取得していることを確認しました。

この子ウィンドウがエディットコントロールかな?と推測するのですが、
リストビューアイテムを編集状態にするにはSpyで捕捉した順序で作成しないといけないのでし
ょうか?
それとももっと簡単に実現できる方法があるのでしょうか?
よろしくお願い致します。

REE 2006/06/28(水) 13:44:41
LVM_EDITLABELについて調べてみてください。

keichan [E-Mail] 2006/06/28(水) 14:35:37
[[解決]]
REE様、早速のご回答ありがとうございます。
LVM_EDITLABELでさくっと実現できました^^
ありがとうございました(ぺこ

古いスレッドには追加発言できません。