リストコントロールをダブルクリックして画面遷移したい

解決


素人  2009-07-03 04:41:10  No: 70490

お世話になります。

タイトルの通り、リストコントロールをダブルクリックして画面遷移させていのですが、具体的にどうやればいいのでしょうか?

h:

afx_msg BOOL OnDblClick(NMHDR* pNMHDR, LRESULT* pResult);

cpp:

BEGIN_MESSAGE_MAP(CNoticeMsgListDlg, CDialog)
  ON_NOTIFY(NM_DBLCLK, IDC_NOTICE_LIST, OnDblClick)
END_MESSAGE_MAP()

bool CNoticeMsgListDlg::OnDblClick( NMHDR* pNMHDR, LRESULT* pResult )
{
            〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
}

と書いてみたのですがエラーが出てダメでした。以下、エラー内容です。

1>c:\users\korosuke.fst\documents\visual studio 2005\projects\launcher\launcher\noticemsglistdlg.cpp(37) : error C2440: 'static_cast' : 'BOOL (__thiscall CNoticeMsgListDlg::* )(NMHDR *,LRESULT *)' から 'void (__thiscall CCmdTarget::* )(NMHDR *,LRESULT *)' に変換できません。
1>        スコープ内でこの名前を指定された関数でターゲット型に一致するものはありません。
1>c:\users\korosuke.fst\documents\visual studio 2005\projects\launcher\launcher\noticemsglistdlg.cpp(91) : error C2556: 'bool CNoticeMsgListDlg::OnDblClick(NMHDR *,LRESULT *)' : オーバーロード関数は、'BOOL CNoticeMsgListDlg::OnDblClick(NMHDR *,LRESULT *)' と戻り値の型のみが異なります。
1>        c:\users\korosuke.fst\documents\visual studio 2005\projects\launcher\launcher\noticemsglistdlg.h(58) : 'CNoticeMsgListDlg::OnDblClick' の宣言を確認してください。
1>c:\users\korosuke.fst\documents\visual studio 2005\projects\launcher\launcher\noticemsglistdlg.cpp(91) : error C2371: 'CNoticeMsgListDlg::OnDblClick' : 再定義されています。異なる基本型です。
1>        c:\users\korosuke.fst\documents\visual studio 2005\projects\launcher\launcher\noticemsglistdlg.h(58) : 'CNoticeMsgListDlg::OnDblClick' の宣言を確認してください。

そもそも書き方が間違ってるのでしょうが、どんなツッコミでも構いません。
どうぞよろしくお願いいたします。


Blue  2009-07-03 18:03:33  No: 70491

>afx_msg BOOL OnDblClick(NMHDR* pNMHDR, LRESULT* pResult);
戻り値の型はvoidでは?


素人  2009-07-03 19:38:16  No: 70492

Blueさんコメントありがとうございます。

BOOLをvoidに直したところ、無事にイベントをキャッチできました。
サイトに書いてあることをそのまま鵜呑みにしてはいけませんね・・・・・・・・。
本当にありがとうございました。


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

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






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