MapWindowPoints的百度解释:

函数功能:该函数把相对于一个窗口的坐标空间的一组点映射成相对于另一窗口的坐标空 的一组点。

 

  函数原型:int MapWindowPoints(HWND hWndFrom, HWND hWndTo,LPPOINT lpPoints, UINT cPoints);

 

  参数:

 

  hWndfrom:转换点所在窗口的句柄,如果此参数为NULL或HWND_DESETOP则假定这些点在屏幕坐标上。

 

  hWndTo:转换到的窗口的句柄,如果此参数为NULL或HWND_DESKTOP,这些点被转换为屏幕坐标。

 

  lpPoints:指向POINT结构数组的指针,此结构数组包含要转换的点,此参数也可指向RECT结构,在此情况下,Cpoints参数应设置为2。

 

  cPoints:指定LpPoints参数指向的数组中POINT结构的数目。

 

  返回值:如果函数调用成功,返回值的低位字是每一个源点的水平坐标的像素数目,以便计算每个目标点的水平坐标;高位字是每一个源点的垂直坐标的像素的数目,以便计算每个目标点的垂直坐标,如果函数调用失败,返回值为零。

个人感受:

上面是百度上的解释,在我当初看到的时候,感觉上解释是很清楚,但是具体的在实际中怎么用,我们可以用它来帮助我们完成什么样的功能,简直没有一个概念。于是用VC来拖几个控件上去,看看使用效果后,总结如下:

1、MapWindowPoints函数可以完成ClientToScreen和ScreenToClient函数的功能。

将要转换成Screen的点所在窗口的句柄作为hWndFrom,NULL或者HWND_TOP作为hWndto,所得结果即是与ClientToScreen一样,好处是可以一次进行多个点,可使lpRect作为LPPOINT处的参数,但是要使用(LPPOINT)做强制转换。完成ScreenToClient时,窗口句柄反过来使用即可。

2、获取控件在父窗口上的位置。在不知道使用MapWindowPoint函数一前,我要获取对话框上的控件位置时,都是使用GetWindowRect后,再使用ScreentToClient来转换,很是麻烦的,现在可以直接使用MapWindowPoints(hChildWnd,hParentWnd,(LPPOINT)lpRect,2),即可得到句柄为hChildWnd窗口在其父窗口上的位置了,很方便的。

3、完成其他任何两个窗口之间的位置判断。当今世界,无奇不有,因此对两互不相关的窗口由于某种原因,也可能用得上MapWindowPoints,如千千静听播放器当两个窗口间距离小于小于某一范围时,让他们自动靠拢。这个距离的判断也是可以通过MapWindowPoints来判断的。只需要传递两个窗口句柄到MapWindowPoints和其中一个窗口的坐标位置,在结合各个窗口大小进行判断即可,此处不讨论了。

4、还没想到呢,欢迎大家也来谈一谈你想到的用法

最新文章

  1. add user and grant privileges on mariadb
  2. 使用bind方法确定接收者
  3. Maven基础笔记,原理
  4. iis7配置网站容易出现的问题(转)
  5. sublime text 如何设置”在浏览器浏览“的快捷键
  6. 第2月第4天 injection plugin for xcode
  7. 用纯Css作三角形
  8. 【poj1006】 Biorhythms
  9. windows实时操作系统
  10. 一天,python搞个分析NGINX日志的脚本
  11. mac_Mac环境下怎样编写HTML代码?
  12. Windows Phone 8.1开发:触控和指针事件2
  13. Apache中限制和允许特定IP访问
  14. Leetcode_7_Reverse Integer
  15. 安装ipset车祸现场
  16. FreeMarker案例
  17. CSS: hover选择器的使用
  18. .NET:bin 与 obj,Debug 与 Release ,区别与选择
  19. 远程桌面访问linux
  20. maven项目, 单元测试失败提示 Class not found datastorage........

热门文章

  1. js操作本地文件
  2. MongoDB Oplog
  3. SecureCRT rz上传文件失败
  4. 基于微信的SDK的学习与使用——实现产品支付
  5. 读取spring boot项目中resource目录下的文件
  6. 【废弃】JavaScript 删除部分
  7. E20181029-hm
  8. Sping中使用Junit进行测试
  9. VR头盔产品镜片评测
  10. 骨骼蒙皮动画(SkinnedMesh Animation)的实现