MFC封装进度条dll

  好吧,其实这个过程相对来说比较简单,也没有什么特别需要讲解的,就是在处理的过程中有几个问题需要注意。鉴于好像网上没有特别的教程来讲解这个问题,所以我这里稍微记录一下以免自己以后忘记,同时也是帮助有需要的人。我们的目的是在程序启动的过程中能够弹出一个进度条,同时这个进度条的为止,进度能够由外部函数控制,主要包括:1.设置进度条的范围;2.设置进度条的步长;3.进度条向前走一步。另外需要封装好打开和关闭函数。这样的设计不知道是不是有问题,因为在实际处理过程中一般是将界面显示作为主线程响应,然后数据处理放在分线程中,不过既然提到这个问题还是应该好好解决才对。我们下面详细介绍一下整个构建MFC进度条dll的步骤:首先我们新建一个工程,工程类型为MFC DLL,在DLL类型选项中我们选择MFC扩展DLL,这三个选项好像有一些差别,但是差别具体体现在什么地方我也有点迷糊,网上有大神提到这个问题,但是说的也不是太清楚,我们暂且不管这个问题,就选择这个选项就好了,然后点击完成就生成了一个MFC扩展的DLL。

7W)L)0ZSU35E3RIG_)K$N4CIYCGEW)LZ01M[R_FM_G2K5K

      下面要为这个DLL添加资源,我们需要新建一个对话框,然后在对话框中我们添加一个进度条控件和一个静态文本控件,结果如下图所示:

 

_PAQ9K06QK]Z$)QPUV]`E6W

添加完成之后我们整个资源就添加完毕了,下面就需要给这个对话框添加一个类,这个就跟MFC的应用程序的过程是相同的,我们为这个对话框绑定一个类,然后为控制进度条添加一个进度条变量,到这里我们自动添加的工作就完成了,下面是要手动操作的了,由于是在对话框外部要对对话框中的进度条进行操作,所以我们需要在对话框类中封装一系列操作进度条的函数如下图:

[K$_6D`{6BPUS_%HLWG[(WN

这里封装的函数主要包括对话框销毁函数,设置静态文本变量函数,进度条向前运行函数,设置进度条范围函数,设计进度条位置函数,设置进度条步长函数,一般来说对于一个进度条常用的函数就这些了,下面我们要说说为什么添加一个对话框销毁函数,因为在对话框类定义变量并进行操作的过程中并不支持对话框在外部调用DestoryWindow()函数进行销毁,所以我们需要通过一个接口在内部调用函数关闭这个对话框。那么到目前为止我们已经完成了对话框函数的基本处理和一些操作的封装,下面就是写dll接口,由于是dll所以我们不能把对话框的函数暴露在接口中因此我们重新定义一个接口文件,其中包含初始化,销毁,以及对进度条操作的接口并将其定义为dll导出,实际定义如下:

J{B_D41TL5ZLMJCA@9E~V06

接口定义好之后我们需要通过这个对整个对话框和进度条进行处理,在这里我纠结了一下,因为如果将对话框定义为在函数中的话,这样就没有办法对对话框进行操作,同样这样有一个好处就是对话框不用手动销毁,但是实际上要求能够在外部对对话框进行操作,所以最后我只能将对话框作为一个全局变量在cpp中定义,但是这样在使用的过程中如果创建了对话框必须先进行销毁,然后才能进行下一次的创建,这样的话就稍微麻烦一点,好了,然后我们在cpp中调用对话框类中封装好的函数就行了,记住首先必须先创建对话框才能对对话框内部的进度条进行处理,同时一个创建必须对应一个输出,下面我们演示一下整个对话框调用结果(由于截动态图比较麻烦,随便截一个图演示一下):

)WC2564IF%_HMC9Y6N5B_LV

点击打开链接

猜你喜欢

转载自blog.csdn.net/maigao1/article/details/78961723