Visual C++ 时尚编程百例014(限制鼠标)

简介:

在CXXXView.h中添加
public:
 HCURSOR m_hCursor;
 int m_hClick;//
protected:
 void LoadCur(UINT CurName);
 void GetCur(int ID_NO);
源文件添加
Cvc1010View::Cvc1010View()
{
 // TODO: 在此处添加构造代码
 m_hClick=0;
}
void Cvc1010View::OnLButtonDown(UINT nFlags, CPoint point)
{
 // TODO: 在此添加消息处理程序代码和/或调用默认值
 ++m_hClick;
 GetCur(m_hClick);//获取鼠标指针
 SetCursor(m_hCursor);
 RECT rect;
 GetClientRect(&rect);
 ClientToScreen(&rect);//该函数将指定点,或者矩形的用户坐标转换成屏幕坐标。 
 ClipCursor(&rect);//限制鼠标移动范围(在rect内)
 CScrollView::OnLButtonDown(nFlags, point);
}

void Cvc1010View::OnMouseMove(UINT nFlags, CPoint point)
{
 // TODO: 在此添加消息处理程序代码和/或调用默认值
 SetCursor(m_hCursor);
 CScrollView::OnMouseMove(nFlags, point);
}

void Cvc1010View::OnLButtonUp(UINT nFlags, CPoint point)
{
 // TODO: 在此添加消息处理程序代码和/或调用默认值
 ClipCursor(NULL);
 CScrollView::OnLButtonUp(nFlags, point);
}

void Cvc1010View::LoadCur(UINT CurName)
{
 //AfxGetApp()返回指向应用程序的单一的CWinApp对象的指针。
 m_hCursor=AfxGetApp()->LoadCursorW(CurName);//
}
void Cvc1010View::GetCur(int ID_NO)
{
 if(m_hClick>6)
  m_hClick=1;
 switch(m_hClick)
 {
 case 1:LoadCur(IDC_NODROP);break;
 case 2:LoadCur(IDC_POINTER);break;
 case 3:LoadCur(IDC_POINTER_COPY);break;
 case 4:LoadCur(IDC_NODROP);break;
 case 5:LoadCur(IDC_POINTER);break;
 case 6:LoadCur(IDC_POINTER_COPY);break;
 }
}



    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/greatverve/archive/2011/03/09/vc100-14.html,如需转载请自行联系原作者


相关文章
|
1天前
|
编译器 C++ 开发者
C++一分钟之-C++20新特性:模块化编程
【6月更文挑战第27天】C++20引入模块化编程,缓解`#include`带来的编译时间长和头文件管理难题。模块由接口(`.cppm`)和实现(`.cpp`)组成,使用`import`导入。常见问题包括兼容性、设计不当、暴露私有细节和编译器支持。避免这些问题需分阶段迁移、合理设计、明确接口和关注编译器更新。示例展示了模块定义和使用,提升代码组织和维护性。随着编译器支持加强,模块化将成为C++标准的关键特性。
16 3
|
2天前
|
存储 C++
【C++航海王:追寻罗杰的编程之路】一篇文章带你了解二叉搜索树
【C++航海王:追寻罗杰的编程之路】一篇文章带你了解二叉搜索树
9 1
|
2天前
|
算法 安全 编译器
【C++航海王:追寻罗杰的编程之路】C++11(四)
【C++航海王:追寻罗杰的编程之路】C++11(四)
12 0
|
2天前
|
存储 自然语言处理 C++
【C++航海王:追寻罗杰的编程之路】set|map|multiset|multimap简单介绍
【C++航海王:追寻罗杰的编程之路】set|map|multiset|multimap简单介绍
11 0
【C++航海王:追寻罗杰的编程之路】set|map|multiset|multimap简单介绍
|
1天前
|
存储 分布式数据库 API
技术好文:VisualC++查看文件被哪个进程占用
技术好文:VisualC++查看文件被哪个进程占用
|
2天前
|
设计模式 编译器 C++
【C++航海王:追寻罗杰的编程之路】特殊类的设计方式你知道哪些?
【C++航海王:追寻罗杰的编程之路】特殊类的设计方式你知道哪些?
4 0
|
2天前
|
编译器 C++
【C++航海王:追寻罗杰的编程之路】多态你了解多少?
【C++航海王:追寻罗杰的编程之路】多态你了解多少?
7 0
|
3天前
|
安全 编译器 C++
【C++】学习笔记——类和对象_5
【C++】学习笔记——类和对象_5
17 9
|
3天前
|
编译器 C++
【C++】学习笔记——类和对象_4
【C++】学习笔记——类和对象_4
14 6
|
3天前
|
存储 编译器 C语言
【C++航海王:追寻罗杰的编程之路】类与对象你学会了吗?(上)
【C++航海王:追寻罗杰的编程之路】类与对象你学会了吗?(上)
8 2