首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

获得窗口相对于屏幕柜型的有关问题

2012-02-04 
获得窗口相对于屏幕柜型的问题GetClientRect(m_hWnd,&m_rcWin)ClientToScreen(m_hWnd,(LPPOINT)&m_rcWin)

获得窗口相对于屏幕柜型的问题
GetClientRect(m_hWnd,&m_rcWin);

ClientToScreen(m_hWnd,(LPPOINT)&m_rcWin);
//(LPPOINT)&m_rcWin把RECT变成什么样子了?
ClientToScreen(m_hWnd,(LPPOINT)&m_rcWin+1);
//为什么要+1?RECT的结构是什么样的?

不明白为什么上面两句就能把窗口此时相对于屏幕的柜型值赋给m_rcWin?

---------------------------
GetClientRect(m_hWnd,&m_rcWin);
POINT   pt;
ClientToScreen(m_hWnd,&pt);
OffsetRect(m_rcWin,pt.x,pt.y);
和上面的那几句效果一样吗?

[解决办法]
可以就可以,不可以就不可以,一用便知,!
GetClientRect(m_hWnd,&m_rcWin);
POINT pt={0,0};
ClientToScreen(m_hWnd,&pt);
OffsetRect(m_rcWin,pt.x,pt.y);

这部分代码能得到正确结果!

BOOL OffsetRect(LPRECT lprc, int dx, int dy);
这个函数的作用将 lprc所指向的矩形移动(dx,dy)的距

当左上角的坐标为(0,0)时,这就相当于移动到点(dx,dy)了!
这也是我强调的m_rcWin.left和m_rcWin.top都是为0。

热点排行