我应该在InvalIDateRect中使用哪些来刷新我的窗口? 为什么?
无法删除由windows上的`tempfile.mk@R_404_6563@p()`创build的文件
如何在使用正则Expression式windows csv时保留换行符
Haskell IDE for windows?
在C中增加控制台窗口
免费的打印机打印到PNG(或SVG)
窗口rect包括非客户区域,即窗口边框,标题栏等。客户端矩阵不。
GetwindowRect在屏幕坐标中返回一个矩形,而GetClIEntRect在客户坐标中返回一个矩形。
InvalIDateRect在客户端坐标中接收一个矩形。 如果您想使整个客户区域无效,则将NulL传递给InvalIDateRect 。 你可以传递GetClIEntRect返回的rect,但是传递NulL更简单,更清晰。
GetClIEntRect获取窗口客户区的坐标。 具体来说,这是窗口区域内的区域,并排除标题等MSDN页面上的一个评论总结得很好:
我会说这个函数返回我可以渲染的区域的大小。
GetwindowsRect获取整个窗口的坐标。 这包括标题,状态栏等。但根据MSDN页面上的评论
Vista下没有与WINVER = 6链接的应用程序将在这里收到一组令人误解的值,这些值并不包含“玻璃”像素的额外填充。Vista Aero应用于窗口。
所以,除非这个问题已经被修复,否则请检查你得到的结果,并确保你有正确的WINVER值。
一个非常简单的解释就是GetwindowRect()给你提供了包含窗口边框的矩形。 GetClIEntRect()为您提供排除边界的矩形 – 分配给窗口特定图形的区域。
请注意GetwindowRect()在屏幕坐标中返回一个矩形 – 相对于屏幕/显示器的坐标。 GetClIEntRect()返回一个相对于自身的矩形。
来自MSDN:
GetwindowRect
检索指定窗口的边界矩形的尺寸。 尺寸在相对于屏幕左上角的屏幕坐标中给出。
GetClIEntRect
检索窗口客户区域的坐标。 客户端坐标指定客户区的左上角和右下角。 由于客户端坐标相对于窗口客户区的左上角,所以左上角的坐标是(0,0)。
更多 :客户端矩形不包括标题栏,边框,滚动条,状态栏…
总结以上是内存溢出为你收集整理的WinApi中的GetClientRect和GetWindowRect有什么区别?全部内容,希望文章能够帮你解决WinApi中的GetClientRect和GetWindowRect有什么区别?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)