VC编程中遇到的窗口大小和窗口客户区大小的问题

我用CreateWindow创建了一个1024*720大小的窗口,有菜单。然后我又用GetClientRect去获取客户区大小,它的值是1008*662但是我自己在响应L... 我用CreateWindow创建了一个1024*720大小的窗口,有菜单。
然后我又用GetClientRect去获取客户区大小,它的值是1008*662
但是我自己在响应LBUTTONDOWN消息的时候,点击窗口内部,用TextOut输出坐标,最大可以达到1015*900左右啊,这是什么情况。。
难道客户区是另外的意思?那我怎么获取我窗口中间空白可用的大小啊。。。
展开
 我来答
regadvan
推荐于2016-04-29
知道答主
回答量:20
采纳率:0%
帮助的人:8.3万
展开全部
用 GetWindowRect 得到的是包括非客户区的矩形(非客户区含上边条,下边条,左边条,右边条,非客户区左边的左顶点,非客户区右边的右顶点,左下角的左下角顶点,右下角的右下角顶点,和客户区)。GetClientRect得到的仅是客户区的矩形。桌面上可供应用程序使用的区域是,除出系统占用区之外的应用程序可用区,系统占用的包括任务栏所占用的部分,应用程序要用WS_EX_TPMOST属性才可以扩展到这部分区域,应用程序可用区,可以用getsystemmetrics函数来查询,具体可以参考:《WIN32程序员参考大全》全书共五册,最好是下载有目录的那个PDF版。CSDN中去下载,注意下有目录的。关于窗口的一般内容其中都有,要操作和绘制非客户区,就要搜索百度,关键字一般可以是:VC 自绘 非客户区 标题栏等。
zcy990718
推荐于2018-04-09 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:66%
帮助的人:1585万
展开全部
有两个概念:
1.客户区,是指WINDOWS去掉工具栏、菜单栏、状态栏、边框等之后,窗口中间的一块区域
2.逻辑坐标和屏幕坐标,逻辑坐标是指窗口客户区左上角为(0,0),向右X增大,向下Y增大的坐标系,如果有滚动条,可能会出现坐标超出客户区范围的可能
追问
那如果我想要获取一个没有菜单,工具,状态栏的窗口的区域怎么获取呢?GetClientRect不行嘛。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TDelphi
2012-12-09 · 超过23用户采纳过TA的回答
知道答主
回答量:135
采纳率:0%
帮助的人:68.5万
展开全部
GetClientRect得到的就是客户区 可以粗略理解为中间空白可用的大小
其他的是边框菜单什么的
你窗口才1024*720,鼠标消息能达到900 ?
建议用窗口的MOUSEMOVE消息来监视看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wurandexin
2012-12-09 · TA获得超过538个赞
知道小有建树答主
回答量:499
采纳率:100%
帮助的人:312万
展开全部
TEXTOUT最在可以到1015*900?、
TEXTOUT的坐标可以是任意的值,只不过超出范围后不会在显示。。
TEXOUT x=1015,y=0,那么你或许就能看一两个字吧.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
之镶巧Pp
2012-12-18 · TA获得超过9626个赞
知道大有可为答主
回答量:1.5万
采纳率:0%
帮助的人:5585万
展开全部
第一个非客户区的大小加上你想要的大小客户,然后SetWindowPos不是什么?
追问
这跟movewindow差不多嘛,我只是想要得到窗口中间那部分的大小。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式