菜鸟提问如何销毁contaner一个控件并创建新的控件×××××××××

god_sun 2010-01-14 10:08:07
container 里面创建了一个grid(九宫格)控件,,
现在我想点击菜单项,删除这个控件,这时container上为空白,如何做到。。

ui类的事件处理中:
case EFilelistCmdAppPrivFolder1:
{
iAppContainer->DestroyGrid();
break;
}

container类
void CFilelistContainer::DestroyGrid ()
{
delete iGrid;
}

但是执行之后grid并没消失,过了一会就报错:程序已关闭 kern—exec 3
...全文
103 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmulxg 2010-01-14
  • 打赏
  • 举报
回复
只是调试用,析构视图的时候再全部delete

之前贴子已经回复,应该是空指针操作导致
比如iGrid已经被删除了,可是程序其他地方仍然使用这个iGrid
god_sun 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jmulxg 的回复:]
呵呵

或者 试试
iGrid->MakeVisible();
[/Quote]
这样会导致资源没有释放吧,我想在一个container上重画其他控件
jmulxg 2010-01-14
  • 打赏
  • 举报
回复
呵呵

或者 试试
iGrid->MakeVisible();
jmulxg 2010-01-14
  • 打赏
  • 举报
回复
可以在原来的视图创建新的grid

删除grid:
delete iGrid;
iGrid = NULL;

使用grid:
if (iGrid)
{
// do something
}

god_sun 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jmulxg 的回复:]
只是调试用,析构视图的时候再全部delete

之前贴子已经回复,应该是空指针操作导致
比如iGrid已经被删除了,可是程序其他地方仍然使用这个iGrid
[/Quote]
了解了,,那我是不是要创建新的控件非要删除原来的视图从新创建一个视图并创建控件,还是可以在原来视图上创建新的(如果是这样,那delete就不应该放到视图析构里)

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧