windows程序设计笔记3

本文深入探讨了鼠标操作在Windows编程中的应用,包括检查鼠标安装、键个数、光标设置、事件处理(如双击事件)、非客户区鼠标消息、光标操作、窗口风格设定、以及获取和释放鼠标等功能。
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最为常用的操作之一,使用较为频繁,但是不难,较易理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值