当我们对widget使用WM_SetCallback拦截并处理一些消息,可能需要在处理完某些消息后继续调用该Widget原来的callback,典型的例子是WM_DELETE,因为几乎所有widget都需要在该消息中释放一些资源。
void my_callback(WM_MESSAGE *pMsg)
{
switch(pMsg->MsgId)
{
case WM_DELETE:
my_delete_handler(pMsg);
<Widget>_callback(pMsg); // Add this line
break;
default:
<Widget>_callback(pMsg);
}
}