这是在做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属性就会自动配好了
分享到:
相关推荐
论坛上有很多人使用对话框的scrollBar控制对话框中一部分的卷动,实现过程复杂而且逻辑混乱。这个例子里,直接在对话框中创建一个CFormView子窗口,子窗口自己管理卷动,各负其责,条理清晰
控制了窗口的大小当拖动窗口缩小的添加的空间大小时,窗口不会再缩小了,实现了formview dialog对话框的布局,还有就是点击菜单项切换界面,
基于FormView的多语言界面程序,通过定义多种语言的lng文件,即可轻松实现语言的切换
用于MFC,对话框中的自动布局控件,通过继承对应类,和对空间id进行管理,实现对话框窗体的自动布局。 支持PropertySheet,Tab控件。
基于Formview的程序的多语言界面的实现,采用ini文件方式,支持用户定制语言
包含一个主对话框和两个子对话框(在Tab控件中显示)。常用的MFC控件(包括字体、BMP控件)都可以进行缩放,子对话框的控件也可跟随主对话框大小缩放。单个对话框也适用。界面的控件ID循环查找存入数组中(这样界面...
一个基于FormView的扩展类,允许控件以不同形式随窗体变化
ASP.NET的五大数据控件浅谈ASP.NET的五大数据控件浅谈GridView,DataList,Repeater ,DetailsView,FormView。GridView,DataList,Repeater ,DetailsView,FormView。
在ASP.NET 2.0中操作数据:使用FormView 的模板(源码)
在ASP.NET 2.0中操作数据:使用FormView 的模板
FormView控件的运用
FormView 视图 无法响应Ctrl+C等键盘消息解决办法 仅4行代码 无需对单个Editbox控件修改,非常好用 仅需2资源分
多文档应用:可在多文档中应用多个formview 多对话框应用可以更改为多文档应用.
formview.css
这是用vs建的一个例子,关于GridView控件和FormView控件的。
ASP.NET2.0中编程实现GridView与FormView的主-详细视图
GridView_+_FormView_+_SqlDataSource
GridView与FormView结合使用,实现增删改查,第一种方法,用数据源绑定完成!第二种方法,全部用代码完成!
formview分页上一页下一页总页数当前页数首页末页