如果要改变标题栏大小或客户区大小,那么可以在WM_NCCALCSIZE消息里进行设置,lParam参数表示的是有关矩形,具体意义如下:
Private Type WINDOWPOS
hwnd As Long
hWndInsertAfter As Long
x As Long
y As Long
cx As Long
cy As Long
flags As Long
End Type
Private Type NCCALCSIZE_PARAMS
rgrc(0 To 2) As RECT '0为改变后的坐标,1为改变前的坐标,2为客户区的坐标
lppos As Long 'WINDOWPOS
End Type
问题是,自绘了标题栏后,原来的大部分标题栏消息都需要自己处理,否则是没用的。
最简单的还是设置无标题栏,然后在客户区绘制一个假的标题栏。