有关界面的流程问题

six2me 2003-11-27 04:24:53
我用了一个formview类,再上面建了一个treectrl,可是当我再create里面调用treectrl->movewindow()时出错了,提示时控件的m_hWnd=NULL,当我把它移到OnSize中是同样的结果,但是我再oninitupdate中可以实现,句柄不是空的,请教大家:formview中的控件是再什么时候建立的啊?谁有这个方面的流程说明啊?
...全文
31 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
enoloo 2003-12-09
  • 打赏
  • 举报
回复
oncreate()创建对话框(formview),包括加载资源,但不能有与界面有关的动作,应为窗体
还没构造好,HWND=NULL。
onInitDialog()资源已完全构造好了,定位资源和控件在窗体上的位置等,界面初始化。

当oncreate()之后,会有wm_paint消息,此时引发wm_size.但此时控件还没加在。单独的对话框,不能执行与有关的动作。

可以在onsize中,
if(GetActiveWindow()!=NULL)
...
six2me 2003-12-03
  • 打赏
  • 举报
回复
实现是没有问题的,我早已经实现了,我只是要知道流程情况啊,
seilfer2000 2003-12-03
  • 打赏
  • 举报
回复
我也记不得了,不过有个方法你在每个需要得函数里面加个 如TRACE(“view create”),运行一下程序看看输出结果就知道函数得调用顺序了
canjian 2003-12-03
  • 打赏
  • 举报
回复
关注
flyelf 2003-11-27
  • 打赏
  • 举报
回复
你应该首先判断句柄是否为空,即
if(!treectrl->GetSafeHwnd())
{
treectrl->MoveWindow(...);
}
anni 2003-11-27
  • 打赏
  • 举报
回复
应该是在OnInitDialog之后,create里和OnSize里都不能调用的,因为在OnInitDialog之前,这两个函数都会被调用的。!

15,979

社区成员

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

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