Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我必须使用 Windows 窗体创建自定义边框窗口。目前我正在使用 WM_NCCALSIZE 修改边框的大小,并使用 WM_NCPAINT 进行自定义绘图。我意识到,当我在处理 WM_NCCALSIZE 消息时不调用 base WndProc 时,不会绘制滚动条。那么,如果我手动处理 WM_NCCALSIZE,我可以拥有一个原生的、正常的滚动条吗?我该怎么做?
您可以做的是先调用base.WndProc(ref m)然后处理消息以修改边框的大小。
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); } }