科学网

 找回密码
  注册

tag 标签: 视图

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

善用比喻乃表达之核心力
jhongbing2 2010-7-1 11:56
比喻,即打比方,用某些有类似特点的大家熟悉的事物来比拟想要说的某一陌生事物。好的比喻能把抽象的东西变得具体,把严肃的东西变得活泼,把遥远的东西变得近在咫尺。善用比喻与否基本上代表了表达能力的强弱。 您是否有过这样的经历?在表达一种想法的时候找不到合适的词语,或者即使找到了合适的词语,但别人还是听不明白。这时候您打了一个比方,听者一下子就明白了。在学习一个概念的时候,把定义背了多遍,可仍不理解。这时看到一个example,豁然开朗。凡此种种,不一而足。 为什么好的比喻能够让我们很容易理解陌生的事物呢? 我想跟我们的认识路线有关吧。按照马克思主义认识论的基本观点,完整的认识过程包括从感性认识到理性认识的飞跃,再从理性认识到对实践的指导,如此循环,螺旋上升。在我们表达思想的过程中,被表达的东西应属于理性认识范畴,让一个人不经过感性认识直接接受理性认识是比较困难的,除非他对被表达的思想比较熟悉。一个好的比喻在这里就起到了补充感性认识这一环节的作用。打个不太恰当的比方:数据库当中有一个叫视图的概念:视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式,可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据(百度百科)。可能看了这个定义大概知道什么意思,但还是不太清楚。如果这时候打一个比方:大家都玩过魔方,对魔方每做一次变换就是一种样子,一个视图就是你看到的魔方的一个样子,样子在不断变化,但魔方还是这个魔方,所以视图可以不断变化,表还是原来的表。这样就可能加深对视图这个概念的理解。 如何培养打比方的能力呢? 对这个问题,仍在思考中,我想可以从以下三个方面去做: 1.热爱生活,细心留意生活中的各种事物,经常把这些事物与所理解的抽象概念联系比较。 2.多看书,特别是那些举例子、 打比方比较多的书。 例如:《百喻经》、《中华寓言故事》等,与现阶段中文教科书(偏理工类的)比,有很多不错的英文教科书,说它们好, 是因为每给定一个概念、定理,它们都会从不同角度选取一些例子对这些概念、定理进行阐释,中文教科书虽然也有例子但是不是那么丰富。 3.我跟师兄 simon曾经讨论过的一个想法:建一个打比方、举例子的网站,按照各个学科的知识体系,对每一个知识块的知识点都给定相应的例子或者比方进行阐释。按照web2.0的共建共享方式(就像wikipedia),大家共同补充,共同利用。一次建好,世代沿用。鉴于鄙人能力不及,在此呼吁,若有仁人志士有志于此,站成之时,功莫大焉!
个人分类: 随笔|4054 次阅读|0 个评论
在对话框窗体上创建视图
fancyliujing 2009-11-19 14:15
通常我们在设计算法的时候需要一个比较简单的人机交互界面,那么数据的调整与现实就显得必不可少,VC++通常是将文档视图框架作为一个整体展现给我们,这样在某一个子步骤中难免有很多麻烦,我的想法是在以对话框为框架,左边为数据的输入与调整,右边需要显示数据进行交互,那么我们就不需要利用MFC本身的文档视图结构,从而实现自己想要的功能。 1、我的想法是在MDI工程中通过一个菜单命令调用一个动态创建的无模式对话框,然后在无模式对话框上放置了一个静态控件,这个静态控件主要是用来实现一个区域的作用,这个区域用来固定显示VIEW动态创建后显示的区域。 2、利用Wizard生成一个基于CView的CTestView类;在CtestView类中声明一个成员变量Pview;在对话框中添加如下代码: void CDephData_Dlg::CreateView() { CRect rect; CWnd *pWnd=GetDlgItem(IDC_STATIC5);//获得静态控件的指针 pWnd-GetWindowRect(rect);//获得静态控件的位置 pWnd-DestroyWindow();//必须销毁静态窗体,否则视图是依附在静态控件上 ScreenToClient(rect); CCreateContext cx; cx.m_pNewViewClass=RUNTIME_CLASS(CSplitLayerView); cx.m_pCurrentDoc=NULL; CFrameWnd* pfWnd=(CFrameWnd*)this; pView=(CSplitLayerView*)pfWnd-CreateView(cx); //pView-SetScrollSizes(MM_TEXT,CSize(2000,2000));//当你继承的基类是滚动视图类时这句很重要,需要设置视的大小 pView-MoveWindow(rect); 3、不过又有了一个新的问题,对话框中生成后如果点击视图区域,就会出现内存错误,当忽略后如果想要退出系统就退不出去了。 通过寻找相关信息发现, 发现当没有给CView使用 DYNAMIC_CREATE 宏时,MFC不调用 OnMouseActivate 所以在这里需要进行处理。于是在创建的视图类中间手工添加消息映射ON_MESSAGE(WM_MOUSEACTIVATE, OnMouseActivate) ,并实现OnMouseActivate消息 int CTestView::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT msg) { return CWnd::OnMouseActivate(pDesktopWnd, nHitTest, msg); } 运行程序,OK,成功! 希望能给那些需要的朋友提供一点帮助
个人分类: 未分类|8434 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-24 05:45

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部