摘要:本文主要向大家介绍了VC编程之VC语法陷阱总结,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
本文主要向大家介绍了VC编程之VC语法陷阱总结,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
最近对VC语法陷井进行了一下总结,希望对大家有帮助!
1、手工添加类的成员函数时,经常发生在.h和.cpp中的函数原型不一致!特别是你从别的类似的程序复制过来时,类的名称已经改变时!这时的报错会很莫名奇妙,但共有的现象就是双击这个成员函数时,它不能正确定位,会提示找不到:p
2、类的声明的最后一个花括号后面少了一个分号结束符就会导致.cpp文件的"constructors not allowed a return type"!
3、注意:虽然选中了SPLIT自然就有了滚动条控件(即使是CView),但如果你要用SetScrollSize()的话,则必须将此视图派生于CScrollView(否则只有自己手工处理了?)!!当然,要将已经用CView生成的MFC程序改过来很简单,不过重新做一遍向导再加上自己的代码(累死人的啦)。你可以直接将xxxView.h和xxxView.cpp中将所有CView换成CScrollView(但要特别注意,参数中的最好不要换,比如OnUpdate中的第一个参数!)
4、创建MDI程序时如果使用了两个以上的文档模板,则如果向导自动生成的使用了splitter,则另外一个手工加入的文档模板如果缺省地也用了原来的ChildFrame则也会有分隔条,但不会正常工作,呵。恐怕得自己手工加入splitter控件并进行同步更新处理:p。当然,你也可以很简单地再创建一个ChildFrame并不让它支持分隔条:)
5、OnUpdate()现象:当拉出分隔条或新建窗口时,也会自动解发到本事件,当然也会触发OnDraw()。但当调整分隔条或窗口大小位置时却不会触发本事件,只会触发OnDraw()!
6.一个文档模板可以有多个文档,每个文档模板都保留并维护了一个所有对应文档的指针列表。
用CDocTemplate::GetFirstDocPosition函数获得与文档模板相关的文档集合中第一个文档的位置,并用POSITION值作为CDocTemplate::GetNextDoc的参数来重复遍历与模板相关的文档列表。函数原形为: viaual POSITION GetFirstDocPosition( ) const = 0;
visual CDocument *GetNextDoc(POSITION & rPos) const = 0;
如果列表为空,则rPos被置为NULL.
7.在文档中可以调用CDocument::GetDocTemplate获得指向该文档模板的指针。函数原形如下: CDocTemplate * GetDocTemplate ( ) const;
如果该文档不属于文档模板管理,则返回值为NULL。
8.一个文档可以有多个视。每一个文档都保留并维护一个所有相关视的列表。CDocument::AddView将一个视连接到文档上,将该视加入到文档相联系的视的列表中,并将视的文档指针指向该文档。当有File/New、File/Open、Windows/New或Window/Split的命令而将一个新创建的视的对象连接到文档上时, MFC会自动调用该函数,框架通过文档/视的结构将文档和视联系起来。当然,程序员也可以根据自己的需要调用该函数。 Virtual POSITION GetFirstViewPosition( ) const;
Virtual CView * GetNextView( POSITION &rPosition) cosnt;
应用程序可以调用CDocument::GetFirstViewPosition返回与调用文档相联系的视的列表中的第一个视的位置,并调用CDocument::GetNextView返回指定位置的视,并将rPositon的值置为列表中下一个视的POSITION值。如果找到的视为列表中的最后一个视,则将rPosition置为NULL.
9.从一个视图类取得另一视图类的指针
这个应用在多视的应用程序中很多见,一般如果自己在主程序或者主框架中做好变量记号,也可以获得,还有比较通用的就是用文档类作中转,以文档类的视图遍历定位,取得另一个视图类。这个功能从本文第10项中可以得到。
以上就介绍了VC/MFC的学习,希望对VC/MFC有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言VC/MFC频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号