You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

wxWidgets项目OnButtonClicked函数内m_list1等变量未定义问题求助

问题原因与修复方案

你的代码存在两个核心问题,和m_list1、m_txt1的定义本身无关:

  • 成员函数作用域缺失:你在cMain.cpp中定义的OnButtonClicked是全局函数,并没有归属到cMain类下,全局函数自然无法访问cMain类的成员变量,所以编译器会提示变量未定义。
  • 事件绑定被注释:事件表中EVT_BUTTON的绑定代码被注释,即便函数定义修复后,点击按钮也无法触发对应的回调逻辑。

具体修复步骤

  1. 取消cMain.cpp事件表中绑定代码的注释:
wxBEGIN_EVENT_TABLE(cMain,wxFrame)
    EVT_BUTTON(10001,OnButtonClicked) // 删除该行前的注释符
wxEND_EVENT_TABLE()
  1. 给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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:00:01