If DS doesn't eat his dinner, and I know it's something he likes, then it goes in the bin and doesn't get anything else.
He still has milk before bed, so isn't going to be hungry, and as long as he's eaten well the rest of the day he'll still sleep through.
Only exception to this is when he's overtired or hasn't eaten much so clearly has low blood sugar - obv starving him in that situation isn't going to help anybody, so he'll usually have a piece of flapjack or something, and then may well eat his dinner anwyay.
he went through a phase of asking for breakfast for dinner, which I stupidly caved into a couple of times. For days after he was asking for 'befast' in the evening, trying to convince me it was morning ('morning mummy?')
2-3 days of bugger all for dinner sorted that one, and he's back on track.
he's 2.3 btw, and does understand that if he messes with his dinner, then he won't get anything else. I'm very consistent with it though.