客户区和非客户区指的什么?窗口客户区和视图客户区的区别
2012-10-17 17:02
288 查看
客户区和非客户区指的什么?窗口客户区和视图客户区的区别!
1,什么是客户区/非客户区? 2, 窗口(框架/frame)的客户区和视图(view)的客户区的区别? 这些都是初学者很容易迷惑的地方,我也是很迷惑,不过经过一番折腾终于弄明白这些问题了.对于这些问题,我想只用两个图片来说明最直观!如下: 1,在一个MDI(多文档)应用程序中每个概念如下图所标示: 效果如下图 1,窗口框架的客户区就是指图中的灰色部分:即蓝色方框内区域,框架的非客户区就是指蓝色方框之外的窗口区域,包括程序图标,标题栏,菜单,最大最小/关闭按纽,左右两个框和底下的状态条. 2,视图的客户区就是指图中绿色部分:即红色方框内的区域,视图的非客户区就是指视图部分红色方框之外的区域,包括:文件图标,标题栏,三个按纽和两个滚动条. 3,从图中可以看出,工具栏(工具条)不属于框架的非客户区,它跟视图是框架客户区内的"兄弟".它也是一个窗口,读者不妨再拖拽工具条,它还可以拖出框架窗口区域. 4,因此,以后编程中,对于CClientDC,CWindowDC,GetClientDC(),GetWindowDC()应该可以很容易就区分开了. 以上是我自己搜索资料,整理总结出来的,希望对一些人有帮助.如果有不对的地方还请指正. 5,至于在单文档中,每个概念所指的区域跟上面类似分析即可. GetWindowRect() 得到的是在屏幕坐标系下的RECT;(即以屏幕左上角为原点) GetClientRect() 得到的是在客户区坐标系下的RECT; (即以所在窗口左上角为原点) ScreenToClient() 就是把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标。 ClientToScreen() 和上面的刚好相反。 |
相关文章推荐
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别!
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别(转)
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别!
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别(小问题大思想)
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别!
- 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
- 什么是客户区/非客户区?•窗口(框架/frame)的客户区和视图(view)的客户区的区别?
- 客户区和非客户区?窗口客户区和视图客户区?
- 窗口客户区和视图客户区的区别
- 什么是窗口和视图?
- 屏幕坐标系和窗口客户区坐标系最明显的区别
- USER_TAB_COLS和USER_TAB_COLUMNS两个视图有什么区别.
- v$sqlarea,v$sql,v$sqltext这三个视图提供的sql语句有什么区别?
- iphone ios uiwindow uiview CALayer 窗口 视图关系 区别