wxWidgets项目OnButtonClicked函数内m_list1等变量未定义问题求助
问题原因与修复方案
你的代码存在两个核心问题,和m_list1、m_txt1的定义本身无关:
- 成员函数作用域缺失:你在cMain.cpp中定义的
OnButtonClicked是全局函数,并没有归属到cMain类下,全局函数自然无法访问cMain类的成员变量,所以编译器会提示变量未定义。 - 事件绑定被注释:事件表中
EVT_BUTTON的绑定代码被注释,即便函数定义修复后,点击按钮也无法触发对应的回调逻辑。
具体修复步骤
- 取消cMain.cpp事件表中绑定代码的注释:
wxBEGIN_EVENT_TABLE(cMain,wxFrame) EVT_BUTTON(10001,OnButtonClicked) // 删除该行前的注释符 wxEND_EVENT_TABLE()
- 给
OnButtonClicked函数增加cMain类作用域前缀:
// 增加cMain::前缀,说明该函数属于cMain类 void cMain::OnButtonClicked(wxCommandEvent &evt) { m_list1->AppendString(m_txt1->GetValue()); m_list1->AppendString("ONE"); evt.Skip(); }
修改完成后重新构建即可正常运行,点击按钮会将文本框内容和"ONE"依次添加到列表控件中。
内容的提问来源于stack exchange,提问作者Peter Williams
相关产品推荐
相关产品推荐

