当我们对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); } }