文章

滴水-day39-事件-消息-消息处理函数

事件

什么是事件?

事件就是一种动作,用户点击鼠标,单击键盘等等都可称为事件,他是用户做了某种动作而触发的。

消息

当用户触发事件的时候Windows会把这个事件封装成一个消息存放到MSG消息结构体中等待发出消息

消息队列

系统消息队列

应用消息队列

系统会自动区分哪些是需要系统处理的,哪些是需要应用处理的,当放到应用消息队列的时候,应用程序会不间断的读取这个消息队列做相应的处理,当然应用也不是什么消息都会处理,有些消息不是该应用的或者不是该应用关心的消息,该应用就不会进行处理。所以在消息处理函数中会筛选一些消息使得应用程序来处理。

消息处理函数

要想处理菜单栏消息将会通过WndProc函数的wParam参数的高位来进行处理。

鼠标消息处理

 // 移动窗口消息
    case WM_MOVE:
    {
        // lParam 低位X坐标,高位Y坐标
        POINTS  points = MAKEPOINTS(lParam);
        //OutputDebugStringF("xPos---->%d yPos---->%d\\n", points.x, points.y);
        return 0;
    }
      // 窗口大小
    case WM_SIZE:
    {
        // wParam
        // SIZE_MAXIMIZED-->最大化
        // SIZE_MINIMIZED--最小化
        // lParam 低位->新的宽度,高位->新的高度
		UINT width = LOWORD(lParam);
		UINT height = HIWORD(lParam);
        OutputDebugStringF("width--->%d height--->%d\\n", width, height);
        return 0;
    }

License:  CC BY 4.0