zoukankan      html  css  js  c++  java
  • MFC 关于鼠标响应的坐标问题

    关于鼠标响应的坐标问题。

    一直就搞不懂咋个点击左键时,坐标不准。

    原来是:一个相对于屏幕,一个相对于客户区。那就都转换为相对于屏幕的就好了撒~~~

    void CXXXDlg::OnLButtonDown(UINT nFlags, CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    CString str;
    CRect dRect;

    GetDlgItem(IDC_DBD)->GetWindowRect(&dRect);  //得到控件的尺寸大小,这里GetWindowRect函数得到的尺寸是相对于屏幕左上角的坐标给出的

    ClientToScreen(&point);      //坐标转换:客户区->屏幕 

    //然后再对point进行自己想要的操作,比如:

    if((point.x>=dRect.left+m_tlx && point.x<=dRect.right-m_tlx) && (point.y>=dRect.top+m_tly && point.y<=dRect.bottom-m_tly))
    {
    // 通过对point的处理,获得实际在picture控件中的点击位置(坐标)

    point.x-=(dRect.left+m_tlx);
    point.y-=(dRect.top+m_tly);

    str.Format(_T("%d"),point.x); //整型转化为字符串
    SetDlgItemText(IDC_EDIT_DBDX,str); //显示在编辑框中

    str.Format(_T("%d"),point.y); //整型转化为字符串
    SetDlgItemText(IDC_EDIT_DBDY,str); //显示在编辑框中

    }

    }

    利用坐标转换函数
    客户区->屏幕   ClientToScreen(LPPOINT)
    屏幕->客户区    ScreenToClient(CRECT)

    LPPOINT就是CPoint point;变量point的地址,即&point

  • 相关阅读:
    Javascript、Jquery获取浏览器和屏幕各种高度宽度
    Chrome浏览器快捷键
    CSS流体(自适应)布局下宽度分离原则
    JS中的call()和apply()方法
    获取滚动条高度
    手把手教你写Sublime中的Snippet
    Ajax
    javascript创建文档碎片节点
    JS获取元素尺寸大小、鼠标位置
    web开发必备插件
  • 原文地址:https://www.cnblogs.com/lxt287994374/p/3056462.html
Copyright © 2011-2022 走看看