i don't hate him..i just don't like him, but i admire his dribblings and respect him. I rate messi higher because messi can decide the fate of almost every match.
Cristiano is still the better player overall. When you're playing with the likes of Xavi, Eto'o and Iniesta for several years now you're expected to always put outstanding performances and keep on improving specially if you're a young Messi.
But, Ronaldo, for his position and for his style of play and for proving himself in both Spanish and English leagues, the guy has done a lot more than Messi IMO.
Ronaldo is a much more complete player, but is he better....that's down to preference. Before I'd say Messi without much thought, but after one year in Madrid, I gotta say the gypsy would be my pick now.
How can he be more complete? Only thing Messi is (mildly) better is dribbling, due to his smaller physique, and vision. Ronaldo is just as fast and unpredictable with the ball, but much stronger, has a stronger shot and of course he's a threat both from the ground and air. If we're looking at them as solo players, Ronaldo has more going for him than Messi. But a team, as a unit, can perhaps benefit more from Messi than Ronaldo, because he brings others into play much easier, rather than Ronaldo who usually plays for himself(but is damn effective, like you said).