我必须使用Windows窗体创建自定义边框窗口。目前我使用WM_NCCALSIZE来修改边框的大小,并使用WM_NCPAINT进行自定义绘图。 我意识到当我在处理WM_NCCALSIZE消息时不调用基本WndProc时,滚动条将不会被绘制。 那么,如果我手动处理WM_NCCALSIZE,我可以使用原生的普通滚动条吗?我怎么能这样做?
答案 0 :(得分:1)
您可以做的是先拨打base.WndProc(ref m)
,然后处理邮件以修改边框的大小。
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
...
case WM_NCCALCSIZE:
{
base.WndProc(ref m);
//Work your magic...
}
default: base.WndProc(ref m);
}
}