当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 第三部分:MFC基于对话框程序
 

 

 ·directshow技术描述与应用    »显示摘要«
    摘要: directshow技术描述与应用 ―――释雪 directshow是我最早接触一项微软技术,比com技术还早,真不知道当时我是怎么学的。directshow是一个基于com组件技术的多媒体控制组件。它能够进行媒体的捕捉、格式转换以及播放等等功能。实际上,mediaplayer就是在directshow基础上搭建起来的。功能可以说非常的强大。此次我将directx 8.1中的direc......
 ·pmt资源之open source多媒体软件    »显示摘要«
    摘要: http://www.pmtsolution.net/articles/files/open source多媒体软件.pdf open source多媒体软件第一版 2002年12月 pmt 吴昊 本文是“pmt files”的一部分,收集、整理和汇编了open source的多媒体软件。最新版本可以从http://www.pmtsolution.net获得。 一、 音频/视频编辑1. ......


接触VC 3:1
  第三部分:mfc基于对话框程序

最近,本人赶时髦,装上了一套visual studio.net(不过是盗版,微软挺悲惨的.但如果是正版的话,那悲惨的就不会是微软,而是我了.没钱啊).安装要2213m呢,硬盘上三个盘符总共剩下不足2g的地方了.不过,界面相当的漂亮,且功能强大,值得心慰.我终于可以在类视图上,尽情去看类的基类,以及基类的实现代码了.不仅如此,最好的是那附带的msdn上所有的vc基础文章都是中文,翻译的比希望出版社的好得没的说.什么文档啊,框加窗口啊,多视图啊,应有尽有.所以建议大家都来用.net的吧,注意是要那七张盘的同三张的是beta版,vc功能不全的. 【程序编程相关:一种简单又快捷的排序方法

  【推荐阅读:学在 VC ,用在 VB - 透过语言看

好了,拿起手边的vc吧.跟我一块来看一个基于对话框程序的所有代码吧. 【扩展信息:Microsoft Windows 20

这部分该说一说mfc的具体程序了.因为我用的是.net,所以代码可能会与6.0的略有不同,但也无关紧要,不会妨碍整体结构.我也会小心代码兼容性的.

如果是6.0的朋友则首先在菜单上选择新建,在工程(project)选项卡中选中mfc appwizard,将工程名(project name)中起名为dialog,按确定(ok).在向导第一步中选择基于对话框(dialog based),直接按完成(finish)就可以了.

如果是.net的朋友则在菜单上选择新建->项目,在项目类型中选择visual c++项目,在模板中选择mfc应用程序,在名称中输入dialog,按确定.在应用程序类型中选择基于对话框,后按完成.

于是一个基于对话框程序就做好了.第一次使用mfc的朋友,一定会为之喳舌.自己从零开始编程序久了,也许还不习惯别人为咱们生成代码吧.“第一映象就是乱”,这就是我的同学给我的回答.没关系,我们可以一点一点来看与理解vc给我们生成的代码.毕竟,它为我们节省了很多时间来打windowsdk框架代码.

请打开类视图(classview),如果无误的话,我们可以看到三个类.分别是caboutdlg, cdialogapp, cdialogdlg这三个类.

其中,cdialogapp是最重要的一个类.双击cdialogapp,打开其定义体.我们会看到它是这么定义的:

class cdialogapp : public cwinapp

我们可以看到这个类是派生于cwinapp的.在mfc编程中,这种情况很多见,继承类库类来添加自己需要的功能,然后再去使用.在mfc应用程序中,cwinapp就是这样使用的.查一查类库关于cwinapp的描述,是这样的:

mfc中的主应用程序类封装用于 windows 操作系统的应用程序的初始化.运行与终止.基于框架生成的应用程序必须有且仅有一个从 cwinapp 派生的类的对象.在创建窗口之前先构造该对象.

cwinapp 是从 cwinthread 派生的,后者表示可能具有一个或多个线程的应用程序的主执行线程.在最新版本的 mfc 中,initinstance.run.exitinstance 与 onidle 成员函数实际位于 cwinthread 类中.此处将这些函数作为 cwinapp 成员来探讨,因为探讨所关心的是对象作为应用程序对象而不是主线程的角色.

与用于 windows 操作系统的任何程序一样,框架应用程序也具有 winmain 函数.但在框架应用程序中不必编写 winmain.
...   下一页
 ·c#和c++的速度大比拼(二)    »显示摘要«
    摘要: 数据库存取测试在这一部分,我们将用c++和c#代码来测试两者对数据库的存取和处理。方法是对同一个数据库表进行操作。表结构如下: create table testtable ( col1 integer, col2 varchar(50), primary key (col1) ) 测试将分三个部分,第一部分和第三部分集中对数据处理,第二部分集中对数据存取。数据处理和数据存取......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE