弱问

wudeshou82666 2009-12-04 05:09:00
问题:
在多文挡框架程序下
CMainFrame 中有一个CChildFrame成员指针m_pChild;
在CMainFrame中初始化m_pChild
代码:
m_comlog = new CChildFrame();
CCreateContext context;
context.m_pNewViewClass = RUNTIME_CLASS(CComlog);
if(!m_comlog->LoadFrame(IDR_MAINFRAME,WS_MAXIMIZE|WS_OVERLAPPEDWINDOW,this,&context))

AfxMessageBox("创建通讯日志失败",MB_OK|MB_ICONWARNING);

m_comlog->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON1_REVOLOR),TRUE);
m_comlog->SetTitle("通讯日志");
m_comlog->ShowWindow(SW_MAXIMIZE);
m_comlog->InitialUpdateFrame(NULL,TRUE);


CComlog为一个CFormView的派生类,问题是为什么这样初始化会使得CComlog窗口上的CListCtrl上重复插入列
即调用CComlog::OnInitialUpdate()函数两次.要怎么解决

求救
谢谢
...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wudeshou82666 2009-12-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mmilmf 的回复:]
在程序创建视图的时候,也就是一开始会调用一次OnInitialUpdate()函数来更新视图,
然后你又通过IntitialUpdateFrame()这个函数调用了一次。
你可在这个函数中设置断点跟踪看看到底调用了几次这个函数,
或者写上MessageBox("");这个看看是不是弹出两次MessageBox
[/Quote]
原因是找出来了
由于最后主框架窗口调用LoadFrame的时候发送了WM_INITIALUPDATE消息到所有子窗口
mmilmf 2009-12-05
  • 打赏
  • 举报
回复
在程序创建视图的时候,也就是一开始会调用一次OnInitialUpdate()函数来更新视图,
然后你又通过IntitialUpdateFrame()这个函数调用了一次。
你可在这个函数中设置断点跟踪看看到底调用了几次这个函数,
或者写上MessageBox("");这个看看是不是弹出两次MessageBox
wudeshou82666 2009-12-05
  • 打赏
  • 举报
回复
顶上,希望有人讨论
谢谢
wudeshou82666 2009-12-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mmilmf 的回复:]
MSDN上关于函数有这个解释
Call IntitialUpdateFrame after creating a new frame with Create. This causes all views in that frame window to receive their OnInitialUpdate calls.
就是调用这个函数会导致被调用,lz应该明白为什么调用两次啦,
解决办法
1.去掉引起视图刷新的起因

[/Quote]

可是我只调用了一次IntitialUpdateFrame()啊
应该也就只调用依次OnInitialUpdate()
什么情况还会导致调用OnInitialUpdate()呢

很迷惑谢谢您的回复
mmilmf 2009-12-04
  • 打赏
  • 举报
回复
MSDN上关于IntitialUpdateFrame()函数有这个解释
Call IntitialUpdateFrame after creating a new frame with Create. This causes all views in that frame window to receive their OnInitialUpdate calls.
就是调用这个函数会导致OnInitialUpdate()被调用,lz应该明白为什么调用两次啦,
解决办法
1.去掉引起视图刷新的起因
2.在listCtrl控件中插入数据时,删除在插入,防止数据重复插入,

for(int iCol = 0; iCol < number ; iCol++) //nmumber为插入的数据个数
m_ListCtrl.DeleteColumn(0);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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