お世話になります。
タイトルの通り、リストコントロールをダブルクリックして画面遷移させていのですが、具体的にどうやればいいのでしょうか?
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' の宣言を確認してください。
そもそも書き方が間違ってるのでしょうが、どんなツッコミでも構いません。
どうぞよろしくお願いいたします。
>afx_msg BOOL OnDblClick(NMHDR* pNMHDR, LRESULT* pResult);
戻り値の型はvoidでは?
Blueさんコメントありがとうございます。
BOOLをvoidに直したところ、無事にイベントをキャッチできました。
サイトに書いてあることをそのまま鵜呑みにしてはいけませんね・・・・・・・・。
本当にありがとうございました。
ツイート | ![]() |