创建了一个Dialog 内有一个button IDC_BUTTON1
还有一个CListctrl mylist
给mylist了一个 ON_BN_CLICKED(IDC_BUTTON1, &mylist::OnBnClickedButton1)消息 通过该消息触发mylist里的事件
void mylist::OnBnClickedButton1()
{
AfxMessageBox(_T("HELLO"),0,MB_OK) ;//没有响应
}
但是如果消息是给mydialog的就可以正常响应
ON_BN_CLICKED(IDC_BUTTON1, &mydialog::OnBnClickedButton1)
void mydialog::OnBnClickedButton1()
{
AfxMessageBox(_T("HELLO"),0,MB_OK) ;//OK
}请问是为什么?
还有一个CListctrl mylist
给mylist了一个 ON_BN_CLICKED(IDC_BUTTON1, &mylist::OnBnClickedButton1)消息 通过该消息触发mylist里的事件
void mylist::OnBnClickedButton1()
{
AfxMessageBox(_T("HELLO"),0,MB_OK) ;//没有响应
}
但是如果消息是给mydialog的就可以正常响应
ON_BN_CLICKED(IDC_BUTTON1, &mydialog::OnBnClickedButton1)
void mydialog::OnBnClickedButton1()
{
AfxMessageBox(_T("HELLO"),0,MB_OK) ;//OK
}请问是为什么?
otherwise paste your code here?
============================================================
这么写居然能通过?!!
你想让mylist有反映可以在OnBnClickedButton1里处理mylist
这不是我写的,是wizard添加的
为何第二个编译通过不得而知你重载CListCtrl在子类增加OnBnClickedButton1函数应该是没问题的,这里只需要一个函数地址
ON_BN_CLICKED(IDC_BUTTON1, &Clistbox::OnBnClickedButton1)
END_MESSAGE_MAP()
我的mylist不是变量,是个继承于CListCtrl的类
class mylist:public CListCtrl
我没有直接在dialog里画一个ClistCtrl
而是独立创建了一个mylist类 然后在dialog的OnInitDialog里通过
mylist.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT,rectlist,this,IDC_LIST1);
mylist.ShowWindow(SW_SHOW);
来显示mylist的,rectlist是mylist在dialog中的位置
把mylist里面的message map 改成这样: ON_BN_CLICKED(IDC_BUTTON1, &mydialog::OnBnClickedButton1)让他把消息扔给mydialog类处理 :)
你可以改改, 在上面的消息映射里改成在dlg里处理, 然后在dlg里调用pListctrl->SendMessage发送给listctrl.
ON_BN_CLICKED(IDC_BUTTON1, &Clistbox::OnBnClickedButton1)
END_MESSAGE_MAP()
ON_BN_CLICKED(IDC_BUTTON1, &Clistbox::OnBnClickedButton1)
END_MESSAGE_MAP()
你把mylist的OnBnClickedButton1函数要做的内容封装成比如说 fun()
你就在dialog的OnBnClickedButton1里调用mylist的相应函数fun不行么..