VC如何获取加有滚动条的客户区的全部宽度??以及鼠标的消息的坐标??
我获取到的知识显示出来的大小,不包含滚动条的,也就是不是全部客户区的大小,鼠标坐标也是如此。比如滚动条没有滚动时,左上角坐标是(0,0),滚动到下端后,最左上角还是(0,...
我获取到的知识显示出来的大小,不包含滚动条的,也就是不是全部客户区的大小,鼠标坐标也是如此。比如滚动条没有滚动时,左上角坐标是(0,0),滚动到下端后,最左上角还是(0,0),求救大虾解决。。
展开
展开全部
首先,客户区指的就是窗口中可进行绘图的一个方格,照楼主的意思把未显示内容也算在内,这说的是整个设备坐标系,对于设备坐标系是没有大小可言的,它可以认为是一个两条互相垂直的直线所在的平面,它是无限大的。而无论滚动条怎么滚动,设备坐标的0,0点总是位于客户区的左上角。这其中的原理还牵涉到逻辑坐标。详情见http://baike.baidu.com/view/3126326.htm
对于鼠标坐标,当有鼠标消息传递到消息处理程序时,LOWORD(lParam)为x坐标,HIWORD(lParam)为y坐标,此时为设备坐标。没有鼠标消息传递时可以调用GetCursorPos(LPPOlNT IpPoint)函数获取鼠标坐标,此时的坐标是屏幕坐标如果需要转化成设备坐标可以调用ScreenToClient(HWND hWnd, LPPOINT lpPoint);
对于鼠标坐标,当有鼠标消息传递到消息处理程序时,LOWORD(lParam)为x坐标,HIWORD(lParam)为y坐标,此时为设备坐标。没有鼠标消息传递时可以调用GetCursorPos(LPPOlNT IpPoint)函数获取鼠标坐标,此时的坐标是屏幕坐标如果需要转化成设备坐标可以调用ScreenToClient(HWND hWnd, LPPOINT lpPoint);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询