Having dealt with the most difficult people ever in my life i came to the conclusion that sometimes we call a person "difficult" when we fail to understand him or when we fail to deal with him. But as I met more people i started to realize that some people have certain combinations of personality traits that makes it impossible to deal with them even if you are a communication skills expert.
The only way to deal with those people is to understand these difficulties they have in their personalities then to confront them with it. Whether the difficult person thinks that he is always right or whether he believes he knows anything, trying to convince him with your opinion at the situational level will always fail, because unless you face them with their own difficult personality traits they will keep thinking that its the situation that has to be blamed and not them.