VS2008 IDE的项目向导(MFC)的使用

news/2024/10/31 5:35:01/

vc++的主要项目种类有四种,MFC,ATL,WIN32,CLR项目,但是最后一个CLR项目一般用屌net的c#,不用c++,因为会使得编程变得更加复杂和不好用。


点击,出现一个对话框,使用MFC向导,这里主要以mfc项目为例子。选择MFC应用程序,因为我们做的是程序,然后输入项目名称,之后选择程序的位置。


最后一步,必要的时候,我们可以设定和项目不同的解决方案名称。不要小看这个细节,这个操作是管理大型项目的基础,比如我们的一个项目,里面有数据库,应用程序,网页等等,比如什么收费,管理系统等,这时候我们可以考虑单独建立一个解决方案的目录,而这个项目来作为里面的一个项目。

都弄好了,确定出现新的对话框,进入MFC的使用向导,里面有当前项目的默认设置


当前项目设置如果符合自己的口味,那就完成,不符合再点击下一步。这里微软的软件有很好的交互性的体现!那就是虽然为初学者设立了下一步的机制,比如我们有5步,这种傻瓜似的向导可以指引我们一步步的去操作,然后完成。但是当我们熟悉了,或者是个老手,反而会觉得麻烦,所以微软在vs里每一步的旁边都有个完成,这样我们可以直接跳过,一步到位就好。


这四类应用程序的类型,基本囊括了所有的软件界面的样式,比如一些录入系统,OA,管理系统,类似于office的软件,界面相对简单,比如word,一出来就是稿纸,然后是工具栏,其他的就没有了,提现是纯粹输入的软件,界面反而比较简单,只需要给用户提供丰富的键盘接口即可,所以在office软件里快捷键就很丰富。再比如,国产安全软件360,就可以说是多个顶级文档的软件,核心意思就是由多个顶级窗口组成的应用程序的框架。

然后注意unicode库,还有文档视图结构支持。

如果不习惯,就去掉钩子也行。建议不论是vc++6.0转来的还是初学者,都建议使用unicode,因为windows NT内核现在基本都是unicode版本的,很少有ANSI的,如果不用unicode字符,使用ANSI的,这样会有性能损失,中间有一个字符转换。故最好都是使用unicode字符。


关于MFC的使用,一般使用第一个,只有在特殊情况下使用静态库版本的,即当我们的程序发布安装比较简单的时候,我们使用静态库版本的,因为他不依赖动态库。那么这个在最终的应用程序发布的时候是很有用的一个特性。我们不需要考虑程序发布之后,能不能在机器运行的问题,因为他不会出现少动态库的问题。


在然后,就是复合文档的支持,这个比较高级了,比较复杂。简单介绍下:

复合文档(OLE)是一种机制,许可用户创建和编辑包含由多个应用程序创建的项或者“对象”的文档。比如,我们在word文档里,可以拷贝粘贴进excel表格,这个word文档就变为了一个复合文档,里面就要excel创建的项。

OLE最初是对象链接和嵌入的首字母的缩写,但是现在被称为OLE(Object linking and embedding),OLE中和链接和嵌入无关的部分,现在已经成为了Active技术的一部分,比如,当我们直接去双击word文档里的那个小小的excel表格,就会激活excel,而不需要再回到excel把这个表格编辑完,直接现场编辑即可。

复合文档无缝的集成了各种类型的数据或者组件,比如我们看到的还是一个word文档。MFC中支持复合文档的类是COleDocument及其派生类。



接下来的比较重要的是文档模版字符串选项,核心功能就是指定一下文档的后缀扩展名。比如word肯定是关联doc或者docx这样得文档,音乐文件关联mp3。建议中文多些,因为我们的用户不一定都是懂英文的,要交互的好,为用户着想。

有几个地方,最好使用中文,如红线标出的。


文件类型全程,建议英文,因为这里是以后注册表里的表项。


然后还有数据库的支持,这里数据库的支持使用的是ODBC数据库接口,或者OLE DB。

ODBC = open database connectivity开放数据库互连,时间非常久远了。这是微软公司中开放服务结构中有关数据库的一个组成部分(WOSA,windows open services architecture)。它建立了一组规范,并且提供了一组对数据库访问的标准API,这些API利用sql语句来完成大部分任务。目的是搭起一个应用程序到数据库的一个桥梁,这个桥梁来传递数据。ODBC本身也提供了对sql语句的支持,用户也可以直接将sql语句送给ODBC。

mfc中有比较完整的ODBC接口的封装类(主要是CDatabase,CRecordset,和后期一个新的类 CRecordView),虽然MFC提供了对ODBC的一个完整的支持,但是如果真的开发数据库应用,最好选择OLE DB,因为ODBC配置管理比较复杂,扩展性比较差些,比起OLEdb。


ODBC驱动由厂家来提供。


往下是用户界面功能选项,可以设定系统级和细节的界面风格,这步受到在项目类型中设定的整体界面风格影响。可以选择很多选项。这和前面的项目类型的那一步是关联的。

在主框架样式里,注意下,有个最大化,选定了,这样当程序启动的时候,出来就是最大化的。如果向导忘记选了,也没事,那就再弄一个新的项目,成最大化,然后看这个大小和代码,再自己比较代码,自己写和设定。反复生成多个项目,反复比较代码。这是一个技巧。


然后是看高级功能选项。

第一个就是区分上下午的帮助,其实很多国产软件都没注意这个,也行是一个习惯,就是可能是开发团队人员配置不齐,美工很少,或者测试很少甚至都没有,都是开发的。

其实完整的开发团队,更多的应该是辅助人员,开发的应该占据少数,有专门写文档的,测试的,架构的,美工的,安装打包发布的人员,这才是完整的团队。

或者可能是这些团队的只是习惯写代码,不习惯写帮助。

很多时候不完善的开发团队里,程序员有很多角色,既是美工,又是编写文档,还开发,兼顾测试。

还有一个重要的就是windows套接字。WinSock是巴克利套接字标准在windows系统的实现。

套接字本质是一组和具体网络协议无关的网络编程接口。称作socket。

socket可以调用多中协议(tcp/ip,ipv4、v6,AppleTalk,IPX,IrDA等)

WinSock包含了巴克利socket风格的标准函数,还包含了一组windows扩展函数(最好是熟练掌握),使得程序员能够利用windows消息机制进行编程。

MFC包含的是WinSock1.1库的封装(CSocket,CAsyncSocket 异步)。比较老了。

目前windows平台上较新的WinSock版本是2.2版。


还有ActiveX控件。ActiveX是微软提出的一组利用COM(Component Object Model,组件对象模型技术的一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。

ActiveX主要内容: ActiveX 控件、 ActiveX 文档、 ActiveX 脚本
ActiveX特点: 可由 IE 等软件自动安装
ActiveX优点: 与开发平台无关、高度自动化、组件级重用、提高编程效率
ActiveX缺点: 跨平台特性不好,主要应用在windows下,所以没有java跨平台好。

要习惯使用这个控件,多多使用,尤其是vc++程序,开发界面的时候效率比较地下,实现的代价比较高,我们可以使用ActiveX控件来改进。


最后一个是生成得类,可以查看类清单,比如可以更改视图类的基类,从而改变视图类的显示特征。

主要是view类,基类是CView。


这基本就设置完了。



http://www.ppmy.cn/news/416517.html

相关文章

为什么使用Qt而不是MFC

MFC(微软基础类库)是专门为windows设计的一个用于开发图形用户界面的类库。MFC或多或少使用了面向对象的方法包装了Win32的API,正因如此,这些API有时是C,有时是C,甚至是C和C++的混合…

Qt和MFC比较

在网上看到的,拿来和大家一起讨论下。文中不会逐条的列举Qt和MFC各自的优缺点。 我在使用MFC之前就已经使用Qt这个事实可能影响了我的客观性。 (MFC效率较高,但大量的Windows API和消息机制使得其较难理解,不易用;QT封…

Qt和MFC的比较

MFC(微软基础类库)是专门为windows设计的一个用于开发图形用户界面的类库。MFC或多或少使用了面向对象的方法包装了Win32的API,正因如此,这些API有时是C,有时是C,甚至是C和C++的混合…

VS2010 MFC项目添加启动画面

COPY FROM:http://blog.csdn.net/libenqing/article/details/5961991 在VC6.0时代,我们通过在MFC工程中插入Splash组件来简单方便的实现这个功能,但在VS2008以后就没有了这个功能,所以如果想给自己的程序添加一个显示Logo的启动画…

如何正确的关闭 MFC 线程

前言: 近日在网上看到很多人问及如何关闭一下线程,但是我看网上给出的并不详细,而且有些方法还是错误的。小弟在此拙作一篇,不谈别的,只谈及如何正确的关闭MFC的线程,至于Win32和C RunTime的线程暂不涉及。…

MFC消息映射机制详解

Windows程序和MFC程序是靠消息驱动的,他们对于消息的处理本质上是相同的。只是Windows程序对于消息处理的过程十分清晰明了,MFC程序则掩盖了消息处理的过程,以消息映射的方式呈现在开发者面前,使得开发消息的处理十分简单。用多了…

MFC程序的来龙去脉

引言 :   侯捷老师在他那本著名的"深入浅出MFC"(第二版)的第六章中对比着传统的Win32API编程,详细讲解了MFC应用程序“生死因果”,而且侯捷 老师还在"深入浅出MFC"(第二版&#xff…

MFC + Opencv 下面调用HoughCircles 报错

在用MFC配合opencv 开发界面时,调用HoughCircles 函数会报错 0x76ECE43E (ntdll.dll) (AFTESTTOOL.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x5352DBCA 时发生访问冲突。 网上找了一个下午没找到类似的问题的解决方法,就只能自己去重写Op…