AHK:我对我的GUI客户区宽度的理解是否正确?
问题描述:
在AHK论坛,this thread,我收到了这样的回答:AHK:我对我的GUI客户区宽度的理解是否正确?
控制比客户区大,但它永远是“下”,或不限于客户端窗口
读完这篇文章后,我对客户区的宽度感到非常困惑。我一直认为客户区域的宽度等于所有控件的宽度总和(因为它们都位于一条水平线上,并且窗口中只有一条线),加上它们之间的距离,并加上边距(窗口边框与第一个控件之间的距离以及最后一个控件与边框之间的距离),但似乎我错了。
所以,任何人都可以在这里向我解释GUI控件宽度和客户区宽度之间的关系。我在那里问了这个问题,但似乎没有即将出现的答案。
答
控件的非客户区域是边框/标题栏等 - 通常由窗口以您的主题的一致样式绘制。
客户区域就是一切内部边界 - 使控件独一无二的部分,以及绘画时通常访问的部分。 Windows通过一个窗口用两条消息绘制自己:WM_NCPAINT
和WM_PAINT
- 对于例如WM_NCPAINT
的默认处理。顶层窗口将根据窗口上设置的样式标记和当前主题绘制边框/标题栏。 WM_PAINT
的默认处理将什么都不做(背景颜色由WM_ERASEBKGND处理)
您好埃里克,感谢您的回答。那么,如果我通过'GuiControl,Move'命令增加文本控制的宽度,客户区宽度是否也会增加? –
@ Benny-D:是的。客户和全尺寸之间的关系通常是固定的。 – Erik