这个也许是楼主需要的 界面 转帖 非原创 对话框复用技术全攻略0 概述: 复用对程序开发来说是一个重要减少重复工作量的方法,从函数、函数库的复用,到类、类库的复用,再到设计模式、框架的复用,复用的思想和方法在其中起到至关重要的作用。 函数、函数库的复用大家都会用,最常见的常用函数被封装为C语言函数库。这些使用起来比较简单,而且大家工作以后都会慢慢积累自己的函数库。 类、类库的复用也比较简单,C++扩充的标准库STL,以及BOOST库大家基本都有用过。大家工作中也会积累自己常用的类来复用。 关于函数、函数库复用,类、类库的复用都不复杂,重在积累,后面的复用系列里会列出一个常用的函数及类复用模块,是长期开发工作的总结。但这不是本次内容重点。 对话框因其具有模板资源,在复用中大家对此都有一定的困惑,到底对话框如何才能做到完美的复用?在本次对话框复用技术中,按不同情况提供三种最为常用的对话框复用技术: 一、利用VC自带的功能进行复用。 二、利用提取资源文件进行复用。 三、利用动态创建技术复用。 下面分别介绍这几种方法: 一、VC自带的功能进行复用 适用情况:适用于不经常复用的对话框。 准备工作:少 易用程度:非常易用 步骤: 1、在开发好的原来的工程中,在calss view中在你希望导出对话框的类上点击右键,浮动菜单有‘Add to Gallery’选项,可以把这个类以及其资源导出为ogx文件。 2、在复用的工程中project->add to project->components and controls->具体的ogx,方式导入连同资源(如对话框等)到其他的工程中。 说明:该方法简单易用,是开发工具提供的方法,可以通过和其他人共享ogx文件复用对话框。唯一不太好的地方是对话框的资源偶尔会被弄乱。对于非常常用的对话框请不要使用这种方法。 二、利用提取资源文件进行复用。 适用情况:适用于经常复用的对话框。 准备工作:较少 易用程度:较易用 下面以一个简单的提示输入内容的编辑框为例子介绍复用步骤: 复用对话框制作: 先做一个工程,做好你需要的对话框,这里复用的是一个输入对话框。 1、创建文件夹[Input],把下面4个文件放到本文件夹下,以便复用的时候直接拷贝。 2、Input.cpp和Input.h 3、把原工程中的Input对话框中的资源拷贝出来,建立资源文件Input.rc2 4、把原工程中的Input对话框资源定义拷贝出来,建立资源文件头文件InputRc.h,注意对话框的IDD_INPUT不能和现有的冲突,而对话框资源的控件ID资源不会冲突,可以统一从9000开始。 5、在Input.h中加入 #include "InputRc.h" 复用方法: 1、把[Input]文件夹拷贝的新工程中。 2、在新工程的NewProject.rc2中加入 #include "Input\\InputRc.h" #include "Input\\Input.rc2" 3, 在新工程中加入Input.cpp和Input.h文件 说明:这种方法复用起来比较简单,特别是对比较多的对话框可以一起制作,最后一次导入,复用非常好。这种方法是本人多年长期使用的方法,里面有很多技巧,上述简短的内容并没有细讲,请严格按照上述步骤操作即可。例子中是一个非常常用的应用例子,大家可以在自己的工程中很方便地应用。 三、 用动态创建技术复用。 适用情况:适用于最经常复用的对话框。 准备工作:较多 易用程度:最易用 下面以一个非常常用的进度对话框为例子介绍复用步骤: 复用对话框制作: 顾名思义,这种对话框里的所有资源都是自己编码创建的,所以工作量较大,但对最常用的对话框来说是值得的。具体的创建请参见例子代码。 复用方法: 因为这种对话框没有用到资源编辑器产生的任何RC资源,所以应用起来最简单,就像普通的类复用一样简单,直接拷贝到工程目录下,加入工程即可调用。 说明:这种方法非常灵活,不过准备工作量稍大,复用起来最简单。这个例子代码非常实用,可以用平滑、标准进度在模式及非模式方式调用。 |
|