Well I've never seen anything on a football pitch like pre-injury Ronaldo, so I'll let him aside. Cristiano for me is clearly the best footballer in the last 20 years after Messi. Better than Zidane, Ronaldinho and other great players.
Messi is better. Way better ? No. But he is. The Argentinian can both create and score goals. While Cristiano is a better in terms of scoring, Messi is a much much better creator. While Cristiano primarly activates in the last 20-25 metres, you see Messi all over the field given his superior technique. The Portuguese is way more dangerous in the penalty box, he has the complete arsenal. You can't want more from an attacker. But as an overall footballer Messi is better. Cristiano has better movement, is faster, better physically, a danger in the air(maybe the best header in the world, given his technique and also vertical) and has a better shot on him. I also consider him a better finisher, by a bit. As good first touch, even if you might laugh at this. Technically Messi edges him, as well as when it comes to creating chances, given to his better vision and much better passing.