Well, to some degree, it's a developmental phase. Babies and toddlers are curious and want to experiment with gravity. But that doesn't mean that she isn't old enough to start learning some ground rules about mealtime. And if you can find a way to address the behavior without making it a big deal or giving it too much attention, the phase will end sooner versus later. Limiting how much food she has on her tray can help a LOT...one piece at a time can take away the opportunity. Most of the time, though, the throwing starts when toddlers aren't hungry anymore, and that's your cue to end the meal. Simply say "Oh, I guess you aren't hungry" and take her out of the high chair without making it a big deal.
A "firm no" isn't going to do much good at her age, I'm afraid, especially if you say "no" to her often. We save "no" for situations that need an immediate reaction...otherwise, the word loses its power, so to speak. Most toddlers hear "no" and don't know what you want them to do instead. And smacking her is only telling her that it's okay to hit. Even though all toddlers go through the hitting phase eventually, it will be pretty hard to convince her that SHE can't hit if you've been smacking her. If you haven't read Tracy's toddler book yet, she addresses the food throwing, among other things, and gives lots of different positive discipline strategies.