3.25如何在漫长的操作中显示一个沙漏光标?

      从下面的2种技术中选择其一,一个比较简单、另一个更简单。

第1种技术:

调用CCmdTarget::BeginWaitCursor()把光标变为沙漏,调用CCmdTarget::EndWaitCursor()把光标恢复到以前的状态。注意:这两种调用增加或减少一个内部的参考总数。也就是说,如果调用了BeginWaitCursor()2次,那么也应该调用EndWaitCursor()2次,这样才能使光标恢复到普通状态。下面的代码说明了如何使用这些函数:

 

注意:只能在CCmdTarget派生类的上下文中使用这种技术。幸运的是,因为CWnd类派生于CCmdTarget,所以这包括了所有的窗口类以及从CDocument和CWinApp派生出的所有类。

第2种技术:

CWaitCursor提供了一种更简单的方式来显示一个沙漏光标:在应用程序对象中,CWaitCursor的构造函数和析构函数分别调用BeginWaitCursor()和EndWaitCursor()。因此,只要简单的在堆栈中生产CWaitCursor对象的一个实例来显示沙漏光标,直到CWaitCursor变量跳出该范围。

 

使用CWaitCursor 对象代替BeginWaitCursor()和EndWaitCursor()调用,也可以得到较稳固的代码。C++语言保证了可以在所有场合调用CWaitCursor 的析构函数,因此,可以把光标恢复到普通状态。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值