VC编程之VC语法陷阱总结
小标 2019-01-15 来源 : 阅读 1186 评论 0

摘要:本文主要向大家介绍了VC编程之VC语法陷阱总结,通过具体的内容向大家展示,希望对大家学习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频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程