1

在 AHK 论坛上,在这个帖子中,我收到了这个答案:

控件比客户区大,但它总是在“下方”或仅限于客户窗口

读完这篇文章,我对客户区的宽度感到很困惑。我一直认为客户区的宽度等于所有控件的宽度之和(假设它们都位于一条水平线上并且窗口中只有那一条线),再加上它们之间的距离,并加上边距(窗口边框与第一个控件之间的距离以及最后一个控件与边框之间的距离),但假设我似乎错了。

那么,这里的任何人都可以向我解释一下 GUI 控件的宽度和客户区宽度之间的关系。我在那里问了这个问题,但似乎那里的答案不会很快出现。

4

1 回答 1

1

控件的非客户区是边框/标题栏等 - 通常由窗口以与主题一致的样式绘制。

客户区是边界的所有东西 - 使控件独一无二的部分,您通常在绘画时访问它。

Windows 告诉窗口用两条消息来绘制自己:WM_NCPAINT和-例如,顶级窗口WM_PAINT的默认处理将根据窗口上设置的样式标志和您当前的主题绘制边框/标题栏。WM_NCPAINT的默认处理WM_PAINT不会做任何事情(背景颜色由 WM_ERASEBKGND 处理)

于 2011-03-16T01:29:59.470 回答