GetClientRect,GetWindowRect,ClientToScreen,Sc...
来源:百度文库 编辑:神马文学网 时间:2024/04/29 15:30:45
百度首页 | 百度知道 | 登录
新闻 网页 贴吧 知道 MP3 图片 视频 百科 文库
帮助 |设置
百度知道 >电脑/网络 >程序设计 >VC++
已解决
GetClientRect,GetWindowRect,ClientToScreen,ScreenToClient这四个函数如何理解?
悬赏分:100 - 解决时间:2008-9-9 19:01
GetClientRect,GetWindowRect获得的Crect分别是相对什么来说的?还有其它能获得位置的函数吗?还有ClientToScreen,ScreenToClient两个函数是怎么理解的,请举个例子说明下好吗?我当前的问题是想在Ctabctrl控件的一页上放置一个对话框,如何才能把对话框移到刚好完美覆盖的地方?还有我这个TAB控件的父窗口不是最大化的,是否还有区别的?
问题补充:谢谢这位大哥的完整回答,辛苦了呵呵。。可是我还是有些不明白,就如“它的大小就是整个窗口的大小。”这句话里的窗口是指TAB控件(TAB也是窗口)还是指他的父窗口?大哥能否留下E_MAIL以后多向你请教!
提问者: 匿名
最佳答案
GetClientRect的CRect是相对它的窗口的客户区的原点而言的,即它的左上角坐标总是(0,0),大小总是客户区的长宽。GetWindowRect得到的CRect则是相对于屏幕坐标而言的,它的左上角坐标就是窗口在屏幕上的左上角坐标,它的大小就是整个窗口的大小。ClientToScreen,可以把一个CPoint对象或CRect对象的坐标从客户区坐标系(以客户区左上角为原点)变换为屏幕坐标系(以屏幕左上角为原点)。如:// 把对话框的大小变成客户区的大小void CAboutDlg::OnButton1(){CRect myRect;GetClientRect(&myRect);//取得客户区的大小ClientToScreen(myRect);//转换为屏幕坐标MoveWindow(myRect.left, myRect.top,myRect.Width(), myRect.Height());//MoveWindow使用的是屏幕坐标}ScreenToClient,则可以把一个CPoint对象或CRect对象的坐标从屏幕坐标系变换为客户区坐标系。例如:CPoint pos( ::GetMessagePos() ); //::GetMessagePos() 得到发生事件时鼠标的屏幕坐标ScreenToClient(&pos);//把它转换为客户区坐标以便随后在绘图时使用...使用以下代码,可以把对话框移到刚好覆盖的地方:CRect rcTab; // 整个TabCRect rcItem; // Tab上方的按钮// 取得并计算要移动的矩形框m_tab1.GetWindowRect(&rcTab); // 屏幕坐标ScreenToClient(rcTab); // 化成父窗口的客户区坐标m_tab1.GetItemRect(0, &rcItem); // 取得Tab上方按钮的大小rcTab.DeflateRect(0,rcItem.bottom+1,0,0); // 缩小Tab的矩形// 把对话框移动到这个矩形框上m_Page1->MoveWindow(rcTab); // 相对于父窗口的客户区移动补充:关于这些函数的最权威、最详细的描述,请参看MSDN。GetClientRect(),GetWindowRect()这两个函数都是CWnd类的成员函数,或称为方法(Method)。所以调用它们得到的矩形都是属于调用它们的那个CWnd对象的窗口的,如m_tab1.GetWindowRect(&rcTab); 得到的矩形rcTab就是Tab控件的窗口大小和位置(屏幕坐标系)。"它的大小就是整个窗口的大小"这句话中说的窗口就是发出GetWindowRect()调用的这个CWnd窗口。
4
回答者:cmbird -四级 2008-9-8 23:21
我来评论>>
提问者对于答案的评价:
我已经弄懂了,十分感谢!
相关内容
•getclientrect,getwindowrect函数 2007-8-4
•GetWindowRect和GetClientRect有什么不同? 7 2008-12-6
•怎么用VC的GetclientRect函数得到窗口的坐标 怎么用 2009-9-15
•请高手帮忙:vc中的getclientrect函数 1 2008-3-25
•VC ScreenToClient 问题 1 2007-12-3
更多关于getwindowrect的问题>>
查看同主题问题:四个函数理解
等待您来回答
跪求Speaker's Sourcebook II (Bk.2)的PDF或者纸质书籍?An endless source of amusement for computer scientists is the observation thsource.dll在哪里下载win7旗舰版下装office2007,提示office source engine停止工作什么原因啊,怎么解决啊ds=getDataSource(request);错在哪儿?Source Insight 中.searchresultsv 文件求Source Insight详细使用手册source insight 解析太复杂怎么解决
信安通靶场设计专家
机械设计人员招聘中德(扬..
山东德兴液压专业生产泵..
奥兰斯特建筑工程设计事..
安捷伦函数发生器 品牌保..
大型矩形钢管厂家选超凡
广州珑晟 专业资质申请办..
来百度推广VC++
');(function(){if(!(window.baidu&&window.baidu.sug)){setTimeout(arguments.callee,10)}else{window.baidu.init()}})()};©2010 Baidu
新闻 网页 贴吧 知道 MP3 图片 视频 百科 文库
帮助 |设置
百度知道 >电脑/网络 >程序设计 >VC++
已解决
GetClientRect,GetWindowRect,ClientToScreen,ScreenToClient这四个函数如何理解?
悬赏分:100 - 解决时间:2008-9-9 19:01
GetClientRect,GetWindowRect获得的Crect分别是相对什么来说的?还有其它能获得位置的函数吗?还有ClientToScreen,ScreenToClient两个函数是怎么理解的,请举个例子说明下好吗?我当前的问题是想在Ctabctrl控件的一页上放置一个对话框,如何才能把对话框移到刚好完美覆盖的地方?还有我这个TAB控件的父窗口不是最大化的,是否还有区别的?
问题补充:谢谢这位大哥的完整回答,辛苦了呵呵。。可是我还是有些不明白,就如“它的大小就是整个窗口的大小。”这句话里的窗口是指TAB控件(TAB也是窗口)还是指他的父窗口?大哥能否留下E_MAIL以后多向你请教!
提问者: 匿名
最佳答案
GetClientRect的CRect是相对它的窗口的客户区的原点而言的,即它的左上角坐标总是(0,0),大小总是客户区的长宽。GetWindowRect得到的CRect则是相对于屏幕坐标而言的,它的左上角坐标就是窗口在屏幕上的左上角坐标,它的大小就是整个窗口的大小。ClientToScreen,可以把一个CPoint对象或CRect对象的坐标从客户区坐标系(以客户区左上角为原点)变换为屏幕坐标系(以屏幕左上角为原点)。如:// 把对话框的大小变成客户区的大小void CAboutDlg::OnButton1(){CRect myRect;GetClientRect(&myRect);//取得客户区的大小ClientToScreen(myRect);//转换为屏幕坐标MoveWindow(myRect.left, myRect.top,myRect.Width(), myRect.Height());//MoveWindow使用的是屏幕坐标}ScreenToClient,则可以把一个CPoint对象或CRect对象的坐标从屏幕坐标系变换为客户区坐标系。例如:CPoint pos( ::GetMessagePos() ); //::GetMessagePos() 得到发生事件时鼠标的屏幕坐标ScreenToClient(&pos);//把它转换为客户区坐标以便随后在绘图时使用...使用以下代码,可以把对话框移到刚好覆盖的地方:CRect rcTab; // 整个TabCRect rcItem; // Tab上方的按钮// 取得并计算要移动的矩形框m_tab1.GetWindowRect(&rcTab); // 屏幕坐标ScreenToClient(rcTab); // 化成父窗口的客户区坐标m_tab1.GetItemRect(0, &rcItem); // 取得Tab上方按钮的大小rcTab.DeflateRect(0,rcItem.bottom+1,0,0); // 缩小Tab的矩形// 把对话框移动到这个矩形框上m_Page1->MoveWindow(rcTab); // 相对于父窗口的客户区移动补充:关于这些函数的最权威、最详细的描述,请参看MSDN。GetClientRect(),GetWindowRect()这两个函数都是CWnd类的成员函数,或称为方法(Method)。所以调用它们得到的矩形都是属于调用它们的那个CWnd对象的窗口的,如m_tab1.GetWindowRect(&rcTab); 得到的矩形rcTab就是Tab控件的窗口大小和位置(屏幕坐标系)。"它的大小就是整个窗口的大小"这句话中说的窗口就是发出GetWindowRect()调用的这个CWnd窗口。
4
回答者:cmbird -四级 2008-9-8 23:21
我来评论>>
提问者对于答案的评价:
我已经弄懂了,十分感谢!
相关内容
•getclientrect,getwindowrect函数 2007-8-4
•GetWindowRect和GetClientRect有什么不同? 7 2008-12-6
•怎么用VC的GetclientRect函数得到窗口的坐标 怎么用 2009-9-15
•请高手帮忙:vc中的getclientrect函数 1 2008-3-25
•VC ScreenToClient 问题 1 2007-12-3
更多关于getwindowrect的问题>>
查看同主题问题:四个函数理解
等待您来回答
跪求Speaker's Sourcebook II (Bk.2)的PDF或者纸质书籍?An endless source of amusement for computer scientists is the observation thsource.dll在哪里下载win7旗舰版下装office2007,提示office source engine停止工作什么原因啊,怎么解决啊ds=getDataSource(request);错在哪儿?Source Insight 中.searchresultsv 文件求Source Insight详细使用手册source insight 解析太复杂怎么解决
信安通靶场设计专家
机械设计人员招聘中德(扬..
山东德兴液压专业生产泵..
奥兰斯特建筑工程设计事..
安捷伦函数发生器 品牌保..
大型矩形钢管厂家选超凡
广州珑晟 专业资质申请办..
来百度推广VC++
');(function(){if(!(window.baidu&&window.baidu.sug)){setTimeout(arguments.callee,10)}else{window.baidu.init()}})()};©2010 Baidu
GetClientRect,GetWindowRect,ClientToScreen,Sc...
SC 使用方法
林彪图集sc[]
数据结构查找sc
做人的智慧sc
中华名联315[sc]
阿米西达说明书(25%嘧菌酯SC)
幽梦兰口袋推文章目录[sc]
全面诊断汽车故障教你sc
ST、SC、FC、LC光纤接头区别
ST、SC、FC、LC光纤接头区别
ST、SC、FC、LC光纤接头区别 -
教育技术资源大全 - 教育技术导论 -SC
悬浮剂SC工艺特点、工艺步骤及质量控制
一语道破中国千年潜规则:每天懂一点人情世故sc
SCORM标准入门知识介绍- SCORM标准基础知识 - sc...
转自SC: 这些流言已经被证明是误传
剖析社会化商务--国外应用篇(2) - 社会化商务(SC 2.0) - Web2.0研发基...
The problem of passing collection parameters between SP and SC when using xfire+JAXB
民国三巨头之山西王---阎长官在台湾(转自SC论坛)
民国三巨头之山西王---阎长官在台湾(转自SC论坛)
一网打尽高清晰绝世美图!极少见的绝世美景sc
天国坠落——王莽的故事(转自SC) - 军史文学版 - 龙的天空lkong.net --龙...
推荐基于jQuery动感浅灰色与绿色结合的三级导航菜单下载 - sc.xueit.co...