I'd try to pull him aside during the event to talk about the whining. Afterwards is too late, IMO. I think it's unreasonable to expect a 7 year old to really be grateful for an activity mom chose. If it was something he asked to do, and then he was grumpy the whole time, we would definitely have a conversation afterwards about how we may not be rushing to do the next thing he asks to do because his behavior was poor.
I'd give him the option of either sitting out of the activity or cheering up, if just bagging it and going home wasn't feasible, or the rest of the family was enjoying the event. Sometimes we do things that one of my kids doesn't really enjoy, and while I respect their right to an opinion of the event, it's not ok for them to ruin it for the rest of us by constantly complaining. I am working on teaching my kids about not making their bad mood everyone else's problem.
ZM