I could not find anything like this so I wrote it myself:
This class translates most Windows message ids into their symbolic name.
type TWmMessageToString = class function MsgToString(const _WmMsg: Cardinal): string; overload; function MsgToString(const _Msg: TMessage): string; overload; end;
The names are taken from
- Delphi 2010’s messages.pas
- Delphi 2010’s controls.pas
It seems pretty complete, but if a message cannot be found, the MsgToString methods return its hexadecimal and decimal representation.