メニューからリストビューの項目をエディットをするには? – プログラミング – Home

メニューからリストビューの項目をエディ...
 
通知
すべてクリア

[解決済] メニューからリストビューの項目をエディットをするには?


Tome
 Tome
(@Tome)
ゲスト
結合: 19年前
投稿: 36
Topic starter  

いつもお世話になっています。

VC++6.0
PlatfomrSDK
非MFC
の環境にてプログラムをしています。

現在リストビューにて、メニューから「新規アイテム」を選択した際に、リスト項目を追加し、同時
に項目のエディット(名前変更)を開始させるプログラムを作成しています。

手始めに、メニューから既存項目をエディットさせようと思い、いろいろ試しているのですが、うま
くいきません。

いろいろ調べて、
リストスタイルにLVS_EDITLABELSを指定し、WM_NOTIFYのLVN_BEGINLABELEDITなどの処理を加
え、最後に編集をしたいタイミングで ListView_EditLabel を呼ぶことでエディットできることが
わかり、早速実験で、

WM_NOTIFYのNM_DBLCLK(項目ダブルクリック)の処理

case NM_DBLCLK:
ListView_EditLabel( m_hView, 1 ); > 1は適当
break;

を書き加えたところ無事思惑通りに動きました。(どこかの項目をダブルクリックすると2番目の項
目のエディットが開始される)

同様にF2でも開始されるように

case LVN_KEYDOWN:
if( pNMVKD->wVKey == VK_F2 )
ListView_EditLabel( m_hView, 1 );
break;

も思惑通り動きました。

しかし、メニュー選択の処理のところに、ListView_EditLabel( m_hView, 1 );を書いても何も
反応しません。

case WM_COMMAND:
switch( LOWORD(wparam) )
{
case IDM_TEST:
ListView_EditLabel( m_hView, 1 );
break;
}
return 0;

原因がわからず困っています。

ListView_EditLabel( m_hView, 1 )

PosMessage( m_hView, LVM_EDITLABEL, 1, 0 );
に変えたり、プロシージャの戻り値を適当に変えたり(←バカw
いろいろやってみたのですが、まったく成果がありません。

呼び出すタイミングなど、なにかしらの不具合があるのでしょうか?
長々と読んでいただきありがとうございました。
よろしくおねがいします。


引用未解決
トピックタグ
Tome
 Tome
(@Tome)
ゲスト
結合: 19年前
投稿: 36
Topic starter  

すいません自己解決です。

SetFocus( m_hView );
ListView_EditLabel( m_hView, 1 );

で正常に動きました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました