MFC重绘控件,坐标配置相关笔记

来源:互联网 发布:淘宝店铺怎么升级规则 编辑:程序博客网 时间:2024/05/18 01:59

@2017-12-06

源由

接到任务需要调整窗口适应。这边使用GetWindowRectGetClientRectMoveWindow三个函数进行操作,但是操作出来的显示都不对,总结问题到这

过程

对于this.xxx()
    //通用的操作是            CRect myRect;    CRect myRect2;    CRect myRect3;    GetClientRect(&myRect);    m_lstCtrlSelTag.GetWindowRect(&myRect2);    m_lstCtrlSelTag.GetClientRect(&myRect3);    int tmp =myRect2.Width();    m_lstCtrlSelTag.MoveWindow(myRect.Width()-myRect2.Width(), myRect3.top,        myRect2.Width(), myRect2.Height());/*调整的执行需要依靠MoveWindow    然而,MoveWindow是一种函数。功能是改变指定窗口的位置和大小。对子窗口来说,位置和大小取决于父窗口客户区的左上角;对于Owned窗口,位置和大小取决于屏幕左上角。*//*调整的信息需要依靠GetWindowRect和GetClientRect     GetWindowRect();获取的是以屏幕为坐标轴,此窗口在屏幕上的位置。    GetClientRect();获取的是以其自身的最左上角的点为坐标原点,此窗口的位置。*//*坐标转换    ClientToScreen是把坐标从当前窗体转化成全屏幕的!!!    ScreenToClient是把屏幕坐标转化成相对当前窗体的坐标!!!!    注意此处的参数是 cpoint,而不是rect    对于movewindow来说这个刚好用来确定起始点,见其参数。*/
名词
屏幕系统区客户区坐标控件或者窗体的移动需要以上一级父窗为基准的相对坐标然而当前只能获取到,    以屏幕为基准的绝对坐标。    自身的客户坐标。那么就要坐标转换,    屏幕坐标减去

矩形获取 https://www.cnblogs.com/yongtaiyu/archive/2011/05/18/2049554.html
坐标转换http://blog.csdn.net/ljh0600301217/article/details/8736494

原创粉丝点击