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

点击打开链接
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于计算机专业的学生而言,参加各类比赛能够带来多方面的益处,具体包括但不限于以下几点: 技能提升: 参与比赛促使学生深入学习和掌握计算机领域的专业知识与技能,如编程语言、算法设计、软件工程、网络安全等。 比赛通常涉及实际问题的解决,有助于将理论知识应用于实践中,增强问题解决能力。 实践经验: 大多数比赛都要求参赛者设计并实现解决方案,这提供了宝贵的动手操作机会,有助于积累项目经验。 实践经验对于计算机专业的学生尤为重要,因为雇主往往更青睐有实际项目背景的候选人。 团队合作: 许多比赛鼓励团队协作,这有助于培养学生的团队精神、沟通技巧和领导能力。 团队合作还能促进学生之间的知识共享和思维碰撞,有助于形成更全面的解决方案。 职业发展: 获奖经历可以显著增强简历的吸引力,为求职或继续深造提供有力支持。 某些比赛可能直接与企业合作,提供实习、工作机会或奖学金,为学生的职业生涯打开更多门路。 网络拓展: 比赛是结识同行业人才的好机会,可以帮助学生建立行业联系,这对于未来的职业发展非常重要。 奖金与荣誉: 许多比赛提供奖金或奖品,这不仅能给予学生经济上的奖励,还能增强其成就感和自信心。 荣誉证书或奖状可以证明学生的成就,对个人品牌建设有积极作用。 创新与研究: 参加比赛可以激发学生的创新思维,推动科研项目的开展,有时甚至能促成学术论文的发表。 个人成长: 在准备和参加比赛的过程中,学生将面临压力与挑战,这有助于培养良好的心理素质和抗压能力。 自我挑战和克服困难的经历对个人成长有着深远的影响。 综上所述,参加计算机领域的比赛对于学生来说是一个全面发展的平台,不仅可以提升专业技能,还能增强团队协作、沟通、解决问题的能力,并为未来的职业生涯奠定坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值