【冰冻苔原】  
网聚无限美与忆

公告
日历
<2010年2月>
31123456
78910111213
14151617181920
21222324252627
28123456
78910111213
统计
  • 随笔 - 70
  • 文章 - 11
  • 评论 - 99
  • 引用 - 0

导航

常用链接

留言簿(13)

随笔分类

随笔档案

文章分类

文章档案

相册

收藏夹

链接无限

搜索

  •  

积分与排名

  • 积分 - 64167
  • 排名 - 56

最新评论

阅读排行榜

 

      最近做的项目中用到了FormView切换视图,其主要原理是:先新建一些Dialog对话框,然后给这些对话框绑定对应的View,注意:这些View要基于FormView。
      一开始还好好的,利用切换视的代码进行的很顺利(网上的相关代码很多,我就不赘述了),但是,后来新加了两个Dialog,不知我怎么弄的,奇怪的事发生了:先前添加了Dialog都能正常的切换,但是,一切换新添加的Dialog,每次运行到:

BOOL CFormView::Create(LPCTSTR /*lpszClassName*/, LPCTSTR /*lpszWindowName*/,
 DWORD dwRequestedStyle, const RECT& rect, CWnd* pParentWnd, UINT nID,
 CCreateContext* pContext)
{
 ASSERT(pParentWnd != NULL);
 ASSERT(m_lpszTemplateName != NULL);

 m_pCreateContext = pContext;    // save state for later OnCreate

#ifdef _DEBUG
 // dialog template must exist and be invisible with WS_CHILD set  <——请注意此处
 if (!_AfxCheckDialogTemplate(m_lpszTemplateName, TRUE))
 {
  ASSERT(FALSE);          // invalid dialog template name    
  PostNcDestroy();        // cleanup if Create fails too soon     
  return FALSE;
 }
#endif //_DEBUG


中的ASSERT时就报错,而在Release版本下却不会报错。我检查了一下这两个新加的Dialog与先前的Dialog属性有哪些不同,原来是自己把后来加的Dialog的Visible属性设置成了TRUE了, 根据代码的要求是:对话框模板必须存在,属性要设置成不可见和子窗口风格。SystemMenu和TitleBar属性最好都设为False,改完以后,一切正常~~
注:还有一种方法就是在添加Dialog资源时,在Dialog列表上点右键->添加资源,选择Dialog->IDD_FORMVIEW,再点“新建”按钮,这样新建出来的Dialog属性就会自动配好了

posted on 2005-10-10 08:59 【冰冻苔原】 阅读(2751) 评论(3)  编辑  收藏 所属分类: 编程&&电脑技术随笔
评论:
  • # re: 浅谈:切换视时基于FormView的对话框属性设置与ASSERT报错的问题  体彩 Posted @ 2008-05-30 11:26
    学习了,呵呵  回复  更多评论   

  • # re: 浅谈:切换视时基于FormView的对话框属性设置与ASSERT报错的问题  nieweifeng2005 Posted @ 2009-03-03 11:20
    学方法,good。  回复  更多评论   

  • # re: 浅谈:切换视时基于FormView的对话框属性设置与ASSERT报错的问题  prfQNE Posted @ 2010-02-12 08:37
    不错,基于楼主的帖子,解决了工程的错误。  回复  更多评论   

 
Copyright © 【冰冻苔原】 Powered by: 博客园 模板提供:沪江博客