奇趣技术网 收藏本站
设为主页
商务合作
首页 新闻中心 行业动态 软件新闻 安全资讯 病毒预警 漏洞发布 操作系统 Dos Win9x Win2000 WinXP Win2003 WinVista Linux Unix
数据库 DB2 Access MSSQL MySQL Oracle Sybase 编程技术 ASP PHP JSP CGI/Perl XML .Net C/C++/C# VB VC Delphi Java 汇编
安全技术 安全教学 工具介绍 漏洞利用 病毒防范 入侵检测 防火墙 安全防范 汉化破解 攻击实例 加密解密 技术论坛
中华网络安全联盟 >> 程序开发 >> VC >> Visual C++6.0 API函数操作技巧集
程序开发
Asp
PHP
JSP
CGI/Perl
XML
.Net
C/C++/C#
Visual Basic
Visual C++
Delphi
Java
汇编语言
  • VC中利用多线程技术实

  • 利用OpenGL实现三维绘

  • 基于Visual C++的Wins

  • 基于Visual C++6.0的D

  • Visual C++ MFC 中常用

  • 在MFC下如何定义全局变

  • 使用MFC在应用程序中嵌

  • VC++中进程与多进程管

  • Visual C++6.0 API函数操作技巧集
    字体:

    中华网络安全联盟    作者:佚名    来源:网络转载    时间:2006-3-22

        我们在编制应用软件的过程中,常常需要对光标和鼠标操作,本人在文中介绍了Windows系统中有关实现对鼠标和光标进行操作的API函数,并给出了在Visual C6.0++中利用所介绍的API函数实现对鼠标和光标的操作的代码。

      一、隐藏和显示光标

      函数: int ShowCursor ( BOOL bShow );

      参数 bshow,为布尔型,bShow的值为False时隐藏光标,为True时显示光标;该函数的返回值为整型,为鼠标隐藏或显示的指数器;返回值大于等于0时显示光标,否则隐藏鼠标;如果安装了鼠标初值为0。

      实例:

      在基于对话框的应用程序中放置两个Button,名称分别为HideCursor和ShowCursor;再放置一个CStatic控件,名称为Label1,用于显示光标计数器。

      源程序为:

    // 使光标计数器的值减一,如果小于零,隐藏光标
    void CMyTestDlg::OnHideCursor()
    {
    int i;
    i=ShowCursor(FALSE);
    Cstring string;
    string.Format(_T("%d" ),i);
    Label1.SetWindowText(&string);
    }
    // 使光标计数器的值加一,如果大于等于零,显示光标
    void CMyTestDlg::OnShowCursor()
    {
    int j;
    j=ShowCursor(TRUE);
    Cstring string;
    string.Format(_T("%d" ),j);
    Label1.SetWindowText(&string);
    }
      运行程序,连续单击ShowCursor按钮,你会见到计数器从1(光标显示时初值为0)开始不断加1;再连续单击HideCursor按钮,又会见到计数器不断减1,当计数器为-1时开始隐藏光标。

      二、交换鼠标左右键和恢复

      函数:



    BOOL SwapMouseButton ( BOOL fSwap );
      参数 fSwap,为布尔型,TRUE表示交换鼠标左右键,FALSE表示恢复系统默认左右手习惯;返回值亦为布尔型,交换后,返回值TRUE,恢复正常值为FALSE。

      实例:

      在应用程序中放置两个Button,名称分别为ReverseMouse和RestoreMouse。

      源程序为:



    //交换鼠标左右键
    void CMyTestDlg::OnReverseMouse()
    {
    BOOL T;
    T=SwapMouseButton(True);
    If(T)
    MessageBox("鼠标左右键交换成功!");
    }

    // 恢复鼠标左右键交换
    void CMyTestDlg::OnRestoreMouse()
    {
    BOOL T;
    T=SwapMouseButton(FALSE);
    If(!T)
    MessageBox("鼠标左右键恢复为默认状态!");
    }
      运行程序,左键单击ReverseMouse按钮,此时实现鼠标左右键功能切换;再右键单击RestoreMouse按钮,此时实现鼠标左右键功能恢复。

    三、得到鼠标双击时间

      1、函数:
    UINT GetDoubleClickTime(VOID);

      该函数无参数;它的返回值为毫秒,为双击鼠标双击有效的时间间隔。

      实例:

      在窗口中放置一个Button,名称为GetDoubleClickTime;再放置一个名为Label1的CStatic控件,用于显示双击时间。

      源程序为:


    //得到并显示鼠标的双击的时间
    void CMyTestDlg::OnGetDoubleClickTime()
    {
    int DTime;
    Cstring string;
    DTime:=GetDoubleClickTime();
    string.Format(_T("%d" ),Dtime);
    Label1.SetWindowText(&string);
    }


      运行程序,单击GetDoubleClickTime,在Label1中显示双击的时间,为毫秒级。

      四、设置鼠标双击时间

      函数:


    BOOL SetDoubleClickTime ( UINT uInterval );

       参数uInterval,表示鼠标双击时间,为毫秒级,系统默认时间为500;

       返回值为布尔值。

      实例:

      在窗口中放置一个Button,名称为SetDoubleClickTime。

      源程序为:


    //设置鼠标的双击的时间
    void CmyTestDlg::OnSetDoubleClickTime()
    {
    Bool T;
    T=SetDoubleClickTime(500);
    If(T)
    MessageBox("成功的设置了鼠标双击时间!");
    }

      运行程序,单击BtnSetDoubleClickTime,鼠标双击时间已改变。

      五、将鼠标锁定在一定范围

      函数:


    BOOL ClipCursor ( CONST RECT *lpRect );

      参数*lpRect,指向鼠标活动矩形区域的指针;返回值为布尔型,表示锁定成功与否。

      实例:

      在窗口中放置两个Button,名称为LockMouse和UnLockMouse。

      源程序为:


    //将鼠标锁定在固定区域
    void CmyTestDlg::OnLockMouse()
    {
    RECT Rect;
    BOOL bLock;
    Rect.left=10;//设置锁定区域大小;
    Rect.top=10;
    Rect.right=200;
    Rect.bottom=200;
    bLock:=ClipCursor(&Rect); // 限制鼠标移动区域
    if (block)
    MessageBox("鼠标固定在指定区域!");
    }

      将鼠标锁定解锁,其实质是将鼠标锁定在整个屏幕区


    void CmyTestDlg::OnLockMouse()
    {
    RECT Rect;
    BOOL bLock;
    Rect.left=0;//设置锁定区域大小;
    Rect.top=0;
    Rect.right=600;
    Rect.bottom=800;
    Block=ClipCursor(&Rect);
    if (block)
    MessageBox("鼠标固定在屏幕区域!");
    }

      运行程序,单击LockMouse,此时鼠标锁定在固定区域中;再单击UnLockMouse键鼠标锁定解锁。当然还可以采用别的方法将鼠标来解锁,如将鼠标锁定在某一个窗口来对鼠标解锁。

      总之,API函数的功能强大,我们可以在多种快速开发工具中使用它,以增强我们程序的功能。以上程序在Windows2000、Visual C++ 6.0中调试通过。

    字体:
     
    设为主页 收藏本站 联系我们 友情连接 商务合作 网友留言
    Copyright©2006-2008 中华网络安全联盟 All rights reserved.