Hopcount has it right. POSITIVE reinforcement works the best.
Instead of telling him you hate those shorts, pick him out some you like, and then tell him how attractive he is to you when he wears them instead of the other ones. Do the same thing with his hat: tell him how much better he looks with it on straight.
This approach usually prevents people from getting angry and defensive, so you have much better results that way.
If you're on the GAG site asking such an insipid question anonymously, how do you think you'll ever get the nads to tell anyone anything remotely meaningful to their face? Just say, "Hey "Lil' DogBreath, quit dressin like a tard or kiss off!"
Pay some of his pals a couple of bucks each (or just ask them if you know them well) to humiliate him the next time he wears the offensive shorts in question around them. Some men respond to this kind of peer-group criticism more strongly than from their SO's. So I guess I'm saying you may have to be a meanie in this instance, but it's for his own good.
I would say let the man wear what ever he wants. He's not a baby and you don't have to dress him. If you want someone you can dress up buy a dog. Leave the man alone. Get over being so shallow that the type of clothing he wears offends your sense of style, that's so childish it just makes me laugh.