Observer pattern is one of the best solution. Message will be sent only to those objects (components) that are really interested in it. So reciever must subscribe on this message/event type.
There are many signal/slot implementations. For example, in C++ there is a sigslot library
For more information read about Qt signals and slotsQt signals and slots.