《Windows程序设计》笔记 —— Chapter Seven

《Windows程序设计》笔记 —— Chapter Seven

Note:
         1.iMouse = GetSystemMetrics(SM_MOUSEPRESENT);//检查鼠标是否安装
            cButtons = GetSystemMetrics(SM_CMOUSEBUTTONS);///检查鼠标键个数
            wdnclass.hCursor = LoadCursor(NULL, IDC_ARROW);//指定窗口的默认光标
         2.鼠标事件中lParam值包含了鼠标位置。
            x = LOWORD(lParam);
            y = HIWORD(lParam);
            wParam值指示鼠标键及Shift及Ctrl键状态。
            wParam&MK_SHIFT !=0 //说明按鼠标键时Shift键也按下了。
         3.希望窗口接受到双击事件,需要设定窗口风格。
            wndclass.style = CS_DBLCLKS; 
         4.非客户区鼠标消息。
            NC not client,有此标记的大多为非客户区消息,如NCPAINT等。
            wParam、lParam与客户区鼠标消息有区别。
            wParam指明移动或者单击鼠标键的非客户区位置,WINUSER.h中以HT开头的标志符。
            lParam高、低位分别表示y、x坐标,注意是屏幕的而不像客户区内消息的是客户区坐标,使用时需要装换。
            ScreenToClient(hwnd,&pt);
            ClientToScreen(hwnd,&pt);
         5.WM_NCHITTEST
            非客户区命中测试,此消息优先于所有其他的客户区和非客户区鼠标消息。其中lParam含有鼠标x、y值,wParam没有实际意义。对此消息的操作可以屏蔽所有鼠标消息,很强大。
         6.Windows使用WM_NCHITTEST消息产生所有其他鼠标消息。
         7.鼠标光标的操作
               鼠标光标有个显示计数,通过ShowCursor(TRUE)增加,通过ShowCursor(FALSE)减少。GetCursorPos(&pt)获取光标位置。SetCursorPos(x,y)设置位置。
         8.GetWindowLong(hwnd,GWL_HINSTANCE);//获取窗口的hinstance
         9.GetCapture ReleaseCapture。获取、释放鼠标,即使鼠标不在当前窗口内。

ps:鼠标操作是当前Windows最为常用的操作之一,使用较为频繁,但是不难,较易理解。
         

你可能感兴趣的:(《Windows程序设计》笔记 —— Chapter Seven)