如何从Delphi自定义组件中捕获表格WM_NCCalcSize

问题描述

是否可以在自定义组件的过程中控制或@R_502_6275@表单的WM_NCCalcSize和WM_NCHitTest事件?

我已经能够@R_502_6275@表单的Paint和Resize事件,但是现在我需要处理来自自定义组件过程的WM_NCCalcSize和WM_NCHitTest事件。

这些过程控制窗体上标题栏的大小,或只是将其隐藏。

解决方法

那些消息直接发送到窗体的窗口过程。因此,组件将不得不继承Form的子类以拦截它们。例如,通过使用GetParentForm()函数来获取指向Form的指针,然后用自定义处理程序替换其WindowProc属性。