MFC工程中怎么得到相对窗口的坐标 20
我想把窗口中的一个控件设定在相对窗口固定的地方,但是不知道怎么得到相对位置。例如距离窗口左沿20,下沿30的位置。我的意思是窗口拖动改变大小时,控件仍然固定在相对位置...
我想把窗口中的一个控件设定在相对窗口固定的地方,但是不知道怎么得到相对位置。例如距离窗口左沿20,下沿30的位置。
我的意思是窗口拖动改变大小时,控件仍然固定在相对位置 展开
我的意思是窗口拖动改变大小时,控件仍然固定在相对位置 展开
4个回答
展开全部
CRect rtWindow;
GetClientRect(&rtWindow);
CRect rt;
rt.left = rtWindow.left + 20;
rt.bottom = rtWindow.bottom - 30;
rt.right = 控件长度 + rt.left;
rt.top = rt.bottom - 控件高度;
ClientToScreen(&rt);
控件hWnd->MoveWindow(&rt);
GetClientRect(&rtWindow);
CRect rt;
rt.left = rtWindow.left + 20;
rt.bottom = rtWindow.bottom - 30;
rt.right = 控件长度 + rt.left;
rt.top = rt.bottom - 控件高度;
ClientToScreen(&rt);
控件hWnd->MoveWindow(&rt);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SetMapSize()设置坐标模式。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请参考MSDN中的 ScreenToClient() 函数
***************************************
CWnd::ScreenToClient
void ScreenToClient( LPPOINT lpPoint ) const;
void ScreenToClient( LPRECT lpRect ) const;
参数: lpPoint 指向一个CPoint对象或POINT结构,其中包含了要转换的屏幕坐标。
lpRect 指向一个CRect对象或RECT结构,其中包含了要转换的屏幕坐标。
说明:
将显示器上给定点或矩形的屏幕坐标转换为客户坐标。
ScreenToClient成员函数将lpPoint或lpRect给定的屏幕坐标替换为客户坐标。新的坐标是相对于CWnd客户区的左上角的。
***************************************
CWnd::ScreenToClient
void ScreenToClient( LPPOINT lpPoint ) const;
void ScreenToClient( LPRECT lpRect ) const;
参数: lpPoint 指向一个CPoint对象或POINT结构,其中包含了要转换的屏幕坐标。
lpRect 指向一个CRect对象或RECT结构,其中包含了要转换的屏幕坐标。
说明:
将显示器上给定点或矩形的屏幕坐标转换为客户坐标。
ScreenToClient成员函数将lpPoint或lpRect给定的屏幕坐标替换为客户坐标。新的坐标是相对于CWnd客户区的左上角的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询