236上位机VC MFC操作系统鼠标的设置与还原
236上位机VC MFC操作系统鼠标的设置与还原 功能展示 电脑游戏我们应该都有玩过,如植物大战僵尸鼠标是动态的与游戏的环境相融合个性鼠标,我们当前例程也实现电脑鼠标的任意设置,效果如图。点击设置电脑鼠标后,可以浏览静态或动态的鼠标文件进行设置,点击还原电脑鼠标,可以恢复电脑原始鼠标; 要点提示 电脑系统鼠标的设置可以用函数SystemParametersInfo()函数原型为BOOL SetSystemCursor(HCURSORhcur,DWORD id);该函数使一个应用程序定制系统光标。它用hcur规定的光标内容代替id定义的系统光标内容,接着销毁hcur。 函数参数说明: 1.hcur:光标的句柄,该函数hcur标识的光标的内容代替id定义的系统光标内容。系统通过调用DestroyCursor函数销毁hur。因此hcur不能是由LoadCursor函数载入的光标。要指定一个从资源载入的光标,先用CopyCursor函数复制该光标,然后把该副本传送给SetSystemCursor函数。 2.Id:指定由hcur的内容替换系统光标。 下面是一系列的系统光标标识符: OCR_APPSTARTING:标准箭头和小的沙漏;OCR_NORAAC:标准箭头 OCR_CROSS:交叉十字线光标:OCR_HAND:手的形状(WindowsNT5.0和以后版本) OCR_HELP:箭头和向东标记;OCR_IBEAM:I形梁;OCR_NO:斜的圆 OCR_SIZEALL:四个方位的箭头分别指向北、南、东、西 OCR_SIZENESEW:双箭头分别指向东北和西南;OCR_SIZENS:双箭头,分别指向北和南 OCR_SIZENWSE:双箭头分别指向西北和东南;OCR_SIZEWE:双箭头分别指向西和东 OCR_UP:垂直箭头:OCR_WAIT:沙漏返回值:如果成功,返回非零值;如果失败,返回值为零。可调用GetLastError()函数获取具体 的错误代码。 另外使用SetSystemCursor(HCURSORhcur,DWORD id);后可用SystemParametersInfo(SPI_SETCURSORS, 0, 0,SPIF_SENDWININICHANGE);恢复系统原来的鼠标。 实现功能 1.新建基于对话框的应用程序 2.拖拽两个按钮<设置电脑鼠标><还原电脑鼠标>关联函数,实现电脑鼠标的设置与还原 - void CGkbc8Dlg::OnSet()
- {
- CFileDialog Dlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY,"ani(.ani)|*.ani|cur(.cur)|*.cur||");
- if(IDOK ==Dlg.DoModal())
- ::SetSystemCursor(::LoadCursorFromFile(Dlg.GetPathName()),32512);
- }
- void CGkbc8Dlg::OnRestore()
- {
- /*还原鼠标 方法一
- if(NULL!=m_OldCursor)
- ::SetSystemCursor(m_OldCursor,32512);
- */
- /*还原鼠标 方法二*/
- SystemParametersInfo(SPI_SETCURSORS, 0, 0, SPIF_SENDWININICHANGE);
- }
复制代码3.程序退出时调用一次鼠标还原函数OnRestore() ; 4.添加成员变量 HCURSORm_OldCursor;//用于还原系统鼠标用并初始化m_OldCursor=CopyCursor(::GetCursor()); 我们来演示下功能实现的整个过程
|