转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
让VB开发环境支持鼠标滚轮         ★★★★

让VB开发环境支持鼠标滚轮

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2118 更新时间:2009/4/23 18:59:51

        Visual Basic 6.0的集成开发环境中的代码编辑器不支持鼠标滚轮的操作,这给使用VB的人带来了很多不便,为了使它能支持鼠标滚轮操作,我制作了一个小程序帮它实现该功能。

       这个程序实现的原理是,使用全局钩子截获窗口消息,通过相应滚轮消息,向VB编辑窗口发送视图滚动消息实现VB编辑窗口对鼠标滚轮的响应。

       首先,建立一个MFC的Dll工程,向工程中添加下列函数:

       下面这个函数用于安装钩子,之所以将其声明为这种形式,主要是考虑到其可扩展性。

BOOL __declspec(dllexport)__stdcall InstallHook(int nIDHook,const HINSTANCE hMod,DWORD dwThreadId)

{

         AFX_MANAGE_STATE(AfxGetStaticModuleState());

        

         BOOL bResult;

         HINSTANCE hInstance=NULL;

         if(hMod==NULL)

         {

                  hInstance=AfxGetInstanceHandle();

         }else

         {

                  hInstance=hMod;

         }

         switch(nIDHook)

         {

         case WH_CALLWNDPROC:

                  if(g_hWinProc!=NULL)

                  {

                          bResult=TRUE;

                          break;

                  }

                  g_hWinProc=SetWindowsHookEx(WH_CALLWNDPROC,(HOOKPROC)ProcessWndProc,hInstance,dwThreadId);

                  if(g_hWinProc!=NULL)

                  {

                          bResult=TRUE;

                  }

                  break;

         case WH_GETMESSAGE:

                  if(g_hMsgProc!=NULL)

                  {

                          bResult=TRUE;

                          break;

                  }

                  g_hMsgProc=SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)ProcessMsgProc,hInstance,dwThreadId);

                  if(g_hMsgProc!=NULL)

                  {

                          bResult=TRUE;

                  }

                  break;

         default:

                  bResult=FALSE;

                  break;

         }

         return bResult;

}

       下面这个函数用于卸载钩子,与前一个函数对应。

BOOL __declspec(dllexport)__stdcall  UninstallHook(int nIDHook)

{    

         BOOL bResult;

         switch(nIDHook)

         {

         case WH_CALLWNDPROC:

                  bResult=UnhookWindowsHookEx(g_hWinProc);

                  g_hWinProc=NULL;

                  break;

         case WH_GETMESSAGE:

[1] [2] [3]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台