小白问题~~

rulan0312 2006-07-11 05:07:03
GetWindowRect和有什么区别?
...全文
235 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Xman2006 2006-07-12
  • 打赏
  • 举报
回复
有劳wanilyer(缘随影去)再给我讲讲
GetDlgItem(IDC_EDIT1)->ClientToScreen(rc);
ScreenToClient(rc);
这两句吧,我刚接触GUI编程。

ClientToScreen(rc);
ScreenToClient(rc);
不又 变回来了吗?
wanilyer 2006-07-12
  • 打赏
  • 举报
回复
上面弄反了,不好意思,应该是将CRichEdit的Client区域转换成屏幕的Client区域

GetDlgItem(IDC_EDIT1)->GetWindowRect(rc);
ScreenToClient(rc);
InvalidateRect(rc);

这样是能够刷新的!刷新的是CRichEidt的整个窗口区域。

GetDlgItem(IDC_EDIT1)->GetClientRect(rc);
GetDlgItem(IDC_EDIT1)->ClientToScreen(rc);
ScreenToClient(rc);
InvalidateRect(rc);

这样也是可以的 刷新的CRichEdit的客户区域。
wanilyer 2006-07-12
  • 打赏
  • 举报
回复
你要将你得到的Rect转换成CRichEdit的客户区域。你得到的只是屏幕区域。
CRect rect;
CRichEdit.GetClientRect( &rect );
CRichEdit.ScreenToClient( &rect );
Xman2006 2006-07-12
  • 打赏
  • 举报
回复
GetClientRect能不能得到CRichEdit的编辑区的大小,我用CRichEdit的InvalidateRect刷新得到rect没效果啊,求助!
wanilyer 2006-07-12
  • 打赏
  • 举报
回复
这个我就没有进行深入的研究了。
Xman2006 2006-07-12
  • 打赏
  • 举报
回复
上面错了一句,应该是InvalidateRect(rc);,CRichEdit也是窗口,它应该能刷新自己才对啊,为什么要通过父窗口来做?
Xman2006 2006-07-12
  • 打赏
  • 举报
回复
哦,那能不能在richedit控件中添加一个函数,如
CMyRichEdit::refresh()
{
CRect rc;
GetClientRect(&rc);
InvalidateRect(&rc);
}
来刷新,而不通过转换成父窗口坐标由父窗口刷新呢,我试过了,不行。为什么?
wanilyer 2006-07-12
  • 打赏
  • 举报
回复
不同啊
GetDlgItem(IDC_EDIT1)->ClientToScreen(rc);
这一句是把 Eidt控件的客户区域坐标转换成屏幕坐标

ScreenToClient(rc);
是把屏幕坐标转换成Edit控件的相对于父窗口客户区域的坐标。

ScreenToClient(rc);
InvalidateRect(rc); 这两个函数都省掉了它的主语 也就是(this->)

InvalidateRect(rc);因为这个函数刷新的区域就是相对于它所属类的客户区域。

这两个函数 ScreenToClient 和ClientToScreen 比较抽象,自己要多多跟踪代码看看Rect的坐标是怎么变化的才能有比较深的了解。还有记住一点 所有这两个函数的调用如果没有指定具体的窗口那就是当前窗口的调用。
折腾_苏州 2006-07-11
  • 打赏
  • 举报
回复
GetWindowRect得到的是屏幕上的坐标
GetClientRect得到的是客户区的大小
折腾_苏州 2006-07-11
  • 打赏
  • 举报
回复
CWnd::GetWindowRect:
receive the screen coordinates of the upper-left and lower-right corners.
CWnd::GetClientRect:
receive the client coordinates. The left and top members will be 0. The right and bottom members will contain the width and height of the window.
rulan0312 2006-07-11
  • 打赏
  • 举报
回复
和GetClientRect

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧