菜鸟提问如何销毁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
...全文
50 点赞 收藏 5
写回复
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就不应该放到视图析构里)
回复 点赞
发动态
发帖子
Symbian
创建于2007-08-27

2994

社区成员

9190

社区内容

塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区公告
暂无公告