zoukankan      html  css  js  c++  java
  • GUI学习笔记之三鼠标键盘

      客户区鼠标消息有MSG_LBUTTONDOWN, MSG_LBUTTONUP, MSGMOUSEMOVE,其中使用fnGUI_SetCapture和fnGUI_ReleaseCapture来保证某一控件始终唯一获取鼠标信息。其中lParam表示坐标信息,wParam表示ctrl,shift键的状态。

    case MSG_LBUTTONDOWN:
    /*响应DOWN消息捕获鼠标,并记录当前点的坐标值,为相对值*/
        oldx = LOHWORD(lParam);
        oldy = HIHWORD(lParam);
        fnGUI_SetCapture(hWnd);
        IsCaptured = TRUE;
        return 0;
    break;
     
    case MSG_MOUSEMOVE:
    {/*响应MOVE消息画线,这时得到的坐标值为屏幕坐标值*/
        T_GUI_HDC hdc;
        if(IsCaptured)
        {
            x = LOHWORD(lParam);
            y = HIHWORD(lParam);
            fnGUI_ScreenToClient(hWnd,&x,&y);
            hdc = fnGUI_GetClientDC(hWnd);
            fnGUI_SetInstantPaint(TRUE);
            fnGUI_MoveTo(hdc,oldx,oldy);
            fnGUI_LineTo(hdc,x,y);
            oldx = x;
            oldy = y;
            fnGUI_SetInstantPaint(FALSE);
            fnGUI_ReleaseDC(hdc);
            return 0;
        }
    }
    break;
     
    case MSG_LBUTTONUP:
    /*释放鼠标*/
        oldx = oldy = 0;
        x = y = 0;
        fnGUI_ReleaseCapture();
        IsCaptured = FALSE;
        return 0;
    break;
    
    

      键盘消息:当有按键时产生键盘事件,形成键盘消息传递给窗口过程,传送过程采取的是一种由顶向下的方式,从桌面到激活主窗口再到其上的焦点控件。其主要的消息有:MSG_KEYDOWN  MSG_CHAR  MSG_KEYUP MSG_SYSKEYDOWN  MSG_SYSCHAR  MSG_SYSKEYUP,wParam 参数表示的是键码,lParam 参数表示的是控制键如alt、shift 等的状态。在应用程序中用户可通过系统调用fnGUI_SetActiveWindow来激活某个主窗口,同时用户可通过系统调用fnGUI_SetFocus 设置某个窗口具有焦点,fnGUI_KillFocus 使某个窗口失去焦点。

  • 相关阅读:
    7zip在DOS命令行用法总结
    WinRAR在DOS下压缩/解压缩的使用方法
    Linux关闭防火墙命令
    将java的jar包,打包为rpm 安装包
    spring mvc 基于注解 配置默认 handlermapping
    Spring + Spring MVC + MyBatis 整合
    Android开发环境搭建全程演示(jdk+eclipse+android sdk)
    使用Spring MVC表单标签
    context:component scan配置策略
    Spring AutoWiring Beans with @Autowired annotation
  • 原文地址:https://www.cnblogs.com/beauty/p/1774590.html
Copyright © 2011-2022 走看看