进度栏编程

来源:互联网 发布:做软件开发 编辑:程序博客网 时间:2024/06/17 19:59

MFC中进度栏有一个类 CProgressCtrl。

要使用进度栏,先建立一个进度栏,然后调用Create函数。

获得状态栏的区域,可以用CStatusBar的GetItemRect函数来完成。

cmainframe类的oncreate函数是在响应框架窗口的WM_CREATE消息时调用的,只用这个函数执行完成以后,才能够获得窗口状态栏上窗格的矩形区域。我们的思路是,自定义一个消息,然后在cmainframe类的ONCREATE函数中在其返回之前发送这条消息,最后在这个自定义消息的相应函数中获得状态栏上窗格的矩形区域。

在windows中所用的消息都是用一个特定的数值来表示的,为了避免我们自定义的这条消息与系统已经存在的消息冲突,应该利用windows提供的一个常量WM_USER,小于这个常量的值都是为windows保留的,我们自定义的消息只要大于这个消息就好了

如何添加一个自定义的消息:

1 #define UM_PROGRESS WM_USER+1

2 在AFX_MSG注释宏的外面添加函数声明

3添加消息映射函数

4 写函数

 

sendmessage和postmessage 两个函数的区别:

sendmessage 遇到他时,先执行它,然后回到原现场,在执行下一条语句

postmessage 遇到他时,先把消息放到消息队列之中,然后返回,之后程序通过getmessage函数按顺序把消息一条条取出来

 

当窗口大小变化时,会引起窗口重画,调用WM_PAINT函数

 

加载启动画面

有已经写好的类了

 

原创粉丝点击