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;
}
}
我这个博客废弃不用了,今天想寻找外链的时候,突然想到这个博客权重很高。
有需要免费外链的,留言即可,我准备把这个博客变成免费的友情链接站点。