之所以要用类函数代替API,是因为VCL对它做了一些包装,好在API起作用之前和之后做一些额外的事情:通知和判断等等.之所以类函数要包装一个CM_消息,是因为这样方便程序员(在调用类函数的基础上)截断和改写这个处理过程 举例: procedure TWinControl.Invalidate; begin // 注意,是简单执行函数,把消息当作参数,不是发送消息 Perform(CM_INVALIDATE, , ); // 注意,第二个参数即WParam是0,即要求API使自己失效,而不是仅仅做…