お世話になります。
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で捕捉した順序で作成しないといけないのでし
ょうか?
それとももっと簡単に実現できる方法があるのでしょうか?
よろしくお願い致します。
LVM_EDITLABELについて調べてみてください。
REE様、早速のご回答ありがとうございます。
LVM_EDITLABELでさくっと実現できました^^
ありがとうございました(ぺこ