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