设置鼠标忙碌状态
2016-12-09 10:58
190 查看
在MFC C++编程中,我们可能会碰到点击某个按钮后程序要进行较长一段时间的处理,这期间不想让用户到处乱点导致误操作,这个类可以将鼠标设置为忙碌状态且屏蔽用户在忙碌期间的操作消息
//类头文件
//tqw于2016.12.09封装,用于快捷设置鼠标忙碌状态,相比于系统自带的CWaitCursor类多了屏蔽忙碌状态下消息响应功能 #pragma once class CMyWaitCursor { public: CMyWaitCursor(void); void Restore(); ~CMyWaitCursor(void); };
//类实现
#include "StdAfx.h" #include "MyWaitCursor.h" CMyWaitCursor::CMyWaitCursor(void) { AfxGetApp()->BeginWaitCursor(); } void CMyWaitCursor::Restore()//如果你执行了可能会使光标改变的操作,比如显示消息框或对话框,则应调用Restore成员函数以恢复光标。即使当前正在显示等待光标也可以调用Restore函数 { AfxGetApp()->RestoreWaitCursor(); } CMyWaitCursor::~CMyWaitCursor(void) { //消耗掉消息队列中的所有消息以达到在鼠标忙碌状态下点击不响应的效果 MSG msg; while(::PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { //WM_PAINT不能被REMOVE,需要Dispatch if (msg.message=WM_PAINT) { ::DispatchMessage(&msg); } } AFX_BEGIN_DESTRUCTOR AfxGetApp()->EndWaitCursor(); AFX_END_DESTRUCTOR }
使用案列
void CMy2010testDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CMyWaitCursor wait; // 显示等待光标,只要创建一个对象就会自动设置鼠标忙碌状态,在超出对象作用范围时会自动调用析构函数还原状态(如果用New方式创建则需要手动delete)
Sleep(5*1000);//延时以体现忙碌光标效果
}
相关文章推荐
- 利用多线程句柄设置鼠标忙碌状态
- 利用多线程句柄设置鼠标忙碌状态的实现方法
- 如何在SWT中使鼠标的状态变成忙碌
- 如何在SWT中使鼠标的状态变成忙碌
- 如何在SWT中使鼠标的状态变成忙碌
- css基础 设置超链接 正常状态、鼠标放在超链接上的状态、访问过的超链接的状态的样式
- C#系列——实现鼠标忙碌状态
- 改变鼠标的状态,显示为忙碌
- 【MFC 定义消息、设置鼠标状态】
- Qt设置鼠标等待状态与恢复。
- 如何在SWT中使鼠标的状态变成忙碌
- Qt设置鼠标等待状态与恢复。
- 如何在SWT中使鼠标的状态变成忙碌
- css基础 设置超链接 正常状态、鼠标放在超链接上的状态、访问过的超链接的状态的样式
- [记录]将WTK2.2模拟器设置为支持触摸屏状态
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十七节 设置TCP连接状态
- 修改CMD设置使其支持鼠标选择复制
- 用iptables设置有状态防火墙
- 设置鼠标的形状
- 光标状态设置