删除控件wxWidgets
Remove controls wxWidgets
我发现这很难从搜索中找到,但很简单,你如何从面板中删除控件?我有一些wxStaticText和wxTextCtrl,我想交换删除现有的项目,并将其替换为新的?有没有什么命令我可以调用,或者我必须自己做些什么?欢呼声
EDIT:正如ravenspoint指出的那样,仅仅删除控件是不够的。有些控件在Destroy()
中执行额外的清理。
您可以简单地Destroy()
控制。wxWidgets将自动从父窗口中删除它并释放其内存。
wxWindow* ctrl = new wxStaticText(this);
ctrl->Destroy();
ctrl = new wxTextCtrl(this);
如果您没有指向控件的指针,您可以使用FindWindowById
, FindWindowByLabel
或FindWindowByName
来获取它:
if(wxWindow* ctrl = wxWindow::FindWindowById(ID_MYCTRL,this))
ctrl->Destroy();
如果控件已添加到大小大小,则必须在它仍然有效时将其替换:
newCtrl = new wxWindow(...);
sizer->Replace(oldCtrl,newCtrl); // both oldCtrl and newCtrl must be valid
oldCtrl->Destroy();
Layout(); // update sizer
或者,您可以从头创建一个wxTextCtrl并使其只读。但是,需要额外的样式修改才能使其看起来像wxStaticText(例如背景颜色、边框等)。
最简单的方法是隐藏小部件。http://docs.wxwidgets.org/trunk/classwx_window.html a7ed103df04014cb3c59c6a3fb4d95328
但是,如果要永久删除小部件,则调用Destroy http://docs.wxwidgets.org/trunk/classwx_window.html#a6bf0c5be864544d9ce0560087667b7fc
相关文章:
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 在编译时,C++项目抛出错误 C2228,这是预期的,因为控件在运行时未达到该点
- 如何更改窗体上所有控件的标题?[C++生成器]
- 双击更改 mfc 中列表控件中的行的颜色
- 派生的 wxPanel 控件如何访问其中包含 wxDialog 中的数据?
- 如何从代码本身向 wxwidgets 中的文本控件插入字符?
- 如何在MFC中的静态文本控件上插入图标?
- 我的主窗口在创建时或单击更新区域时是否会收到编辑控件?
- 如何在Qt C++中向自定义控件添加属性?
- C/C++ 检测双击 TVItem 的常用控件
- 从C++标头中导入常量而不是硬编码它们:扩展 .net 控件?
- 控件不会在选择函数旁边移动
- wxWidgets 绘制实时图形的最佳控件
- 动态地将控件添加到wxWidgets对话框
- 如何使wxWidgets控件接受中键单击
- wxWidgets:控件或对话框以选择目录路径
- 在WxWidgets文本控件中按回车时防止换行
- wxWidgets:正确地制作一个包含其他控件的用户控件
- 删除控件wxWidgets