When we got back to our room the whining persisted and then I lost it. I picked Eloise up straight-backed, kicking and screaming, stormed into the bathroom and sat her on the edge of the bathtub. And then I yelled, really, really loudly, "ENOUGH!!" Eloise was so surprised that she stopped crying immediately and looked me in the eye, mouth agape. I explained (while possibly still yelling) why I was so upset: "We have had enough, Eloise, we have heard enough whining and complaining and now it is time to stop this so we can enjoy the rest of our vacation. You can stay in here until you settle down and then you can come apologize."
I stormed out of the bathroom as quickly as I stormed in. There was no further crying and a few minutes later Eloise came out of the bathroom, head hung low, and said, "Sorry, mommy."
Honestly, I think I scared the whining out of her. Of course we have had to deal with whining since then, but when it gets really bad I just look at Eloise with big eyes and a frown and that's usually the end of it. I'm not proud that I yelled, but it sure was damn effective.