`
liujinmarshall
  • 浏览: 118741 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

[存档]浅谈:切换视时基于FormView的对话框属性设置与ASSERT报错的问题

 
阅读更多

这是在做EVC的作业时碰到的问题,查到的文章,存个档~~~

最近做的项目中用到了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属性就会自动配好了



分享到:
评论

相关推荐

    对话框中使用FormView

    在传统的对话框中,如果需要添加滚动条,通常需要手动处理消息映射,设置控件的属性,并编写复杂的代码来处理滚动事件。然而,`CFormView`内置了滚动条管理功能,可以自动处理滚动操作,使开发者的工作变得简单。 ...

    mfc单文档应用程序实现了formview界面切换和dialog布局

    在本文中,我们将深入探讨MFC(Microsoft Foundation Classes)中的单文档应用程序(Single Document Interface, SDI)如何实现FormView界面切换以及Dialog布局。MFC是微软提供的一个C++类库,它为Windows应用程序...

    MFC,对话框、FormView自动布局类

    在MFC(Microsoft Foundation Classes)框架中,对话框和FormView是常见的用户界面元素,用于显示用户交互的窗口。为了提高开发效率并提供更美观的界面设计,对话框的自动布局功能变得至关重要。本篇文章将深入探讨...

    基于FormView的多语言界面程序

    【基于FormView的多语言界面程序】是一种设计用于支持多种语言用户界面的技术,它使得软件能够适应不同国家和地区用户的语言需求。在Windows应用程序开发中,尤其是MFC(Microsoft Foundation Classes)框架下,...

    ASP.NET初级_GridView控件和FormView控件

    5. **动态控件**:FormView的模板可以包含基于数据项动态生成的控件,这使得它在呈现不同数据时具有高度可定制性。 在提供的压缩包"Koko_ASP.NET初级_GridView控件和FormView控件"中,你可能找到一个示例项目,展示...

    FormView

    "FormView.suo"文件是Visual Studio的用户选项文件,存储了用户特定的设置和调试信息,不包含代码本身,而是与项目解耦的个人设置。最后,"FormView"可能是源代码或编译后的程序集,包含了FormView控件的具体实现。 ...

    FormView-part1.rar_FormView_Formview 大小

    在Windows应用程序开发中,`CFormView` 是MFC(Microsoft Foundation Classes)库中的一个类,它是基于对话框模板的视图类。`CFormView` 提供了一种方便的方式来创建用户界面,它通常用于创建有多个控件的窗口,如...

    基于FormView的多语言界面程序.rar_FormView_c# 多语言_ini文件_多语言_多语言 ini

    4. **动态更新界面**:在程序运行时,当用户切换语言时,通过读取ini文件的相应条目,动态更新FormView或其他控件的文本属性。可以使用`Control.Text`属性设置控件的文本。 5. **事件处理**:可能需要监听用户语言...

    Windows-FormView.rar_FormView

    切换模式通常通过设置FormView的DefaultMode或EnableViewState属性,以及使用BeginEdit和CancelEdit方法来实现。 5. 事件驱动:FormView有丰富的事件,如ItemCreated、ItemBound、ItemDataBound、ModeChanged等。...

    formview

    在ASP.NET开发中,"FormView"控件是一种强大的数据绑定工具,用于显示单个记录的数据。它提供了灵活的布局选项,可以根据需要自定义显示模板。"FormView"经常与"ListBox"和"DataSource"控件一起使用,来实现更复杂的...

    C# dataView和FormView数据联动

    2. **事件处理**:当`DataView`中的数据发生变化时(例如,排序或筛选),可以通过`DataView`的事件(如`RowChanged`)触发`FormView`的更新,确保显示的数据与`DataView`保持同步。 3. **动态筛选**:用户在`...

    Guanjinke.Windows.Forms.rar_FormView

    通过DataBinding属性,可以设置控件与数据源之间的连接,实现数据的双向绑定。 2. 动态布局:FormView支持多种布局模式,包括Table、Flow和List。开发者可以根据需要调整行和列的数量,以及数据字段的显示方式。 3...

    GridView与FormView结合使用,实现增删改查

    7. 为了在`GridView`和`FormView`之间切换,当用户点击编辑按钮时,可以将`FormView`的`DataSourceID`设置为`SqlDataSource`,并调用`DataBind()`方法。在用户保存更改后,更新`SqlDataSource`的`UpdateCommand`,...

    MFC中子对话框的大小跟随主对话框大小进行缩放

    包含一个主对话框和两个子对话框(在Tab控件中显示)。常用的MFC控件(包括字体、BMP控件)都可以进行缩放,子对话框的控件也可跟随主对话框大小缩放。单个对话框也适用。界面的控件ID循环查找存入数组中(这样界面...

    GridView_+_FormView_+_SqlDataSource

    在ASP.NET中,GridView、FormView和SqlDataSource是常见的数据展示和操作组件,它们共同协作可以实现CRUD(创建、读取、更新、删除)功能。以下是对这些知识点的详细说明: 1. **GridView**: GridView是一种强大的...

    formview分页上一页下一页总页数当前页数首页末页

    在`FormView`控件中,通过`AllowPaging`属性开启分页功能,设置`PageSize`属性以指定每页显示的记录数。例如: ```xml &lt;asp:FormView ID="fvData" runat="server" AllowPaging="true" PageSize="10"&gt; &lt;/asp:...

    vb6控件参考手册-各种控件的使用

    这些控件允许用户与应用程序交互,实现数据输入、显示信息、执行操作等功能。本参考手册将深入探讨各种控件的使用方法,帮助开发者更好地理解和应用VB6中的控件。 1. 基本控件: - Label:用于显示静态文本,可以...

    ASP.NET2.0中编程实现GridView与FormView的主-详细视图

    ASP.NET 2.0 中编程实现 GridView 与 FormView 的主-详细视图 在 ASP.NET 2.0 中,GridView 控件和 FormView 控件都是非常重要的控件,通常用于显示数据。GridView 控件提供了一个表格视图,显示多条记录的主要信息...

    formview详细介绍加使用实例

    **FormView详解与实战应用** 在ASP.NET Web Forms中,`FormView`控件是一个非常重要的数据呈现组件,它提供了一种灵活的方式来显示单个数据记录。本篇将深入探讨`FormView`的各个方面,包括其基本用法、功能特性、...

Global site tag (gtag.js) - Google Analytics