BEGIN_MESSAGE_MAP(cl,CListBox)
ON_LBN_DBLCLK(0,x)
END_MESSAGE_MAP()
这里的ON_LBN_DBLCLK宏,一个MFC定义,实现如下:
#define ON_LBN_DBLCLK(id, memberFxn) ON_CONTROL(LBN_DBLCLK, id, memberFxn)
#define ON_CONTROL(wNotifyCode, id, memberFxn) \
{ WM_COMMAND, (WORD)wNotifyCode, (WORD)id, (WORD)id, AfxSig_vv, \
(AFX_PMSG)&memberFxn },
实际上,这是一个在对话框中才有效的宏,如果你继承了列表框,那么应该重载消息的方式实现,而不是用子控件的方式。
将这个实现,放到窗口类frame的MESSAGE_MAP中,并将0改为控件ID。
不明白,既然使用了MFC为什么不用向导,你这样自己做的代码,很麻烦。用向导中的CFormView或者对话框都可以实现完全相同的界面,这样做起来简单太多了。