Ignore the bad behavior. If you ignore it, she'll stop doing it. If you keep rewarding the behavior (by bending over backwards trying to make her happy), she has no incentive to stop.
You don't hear her when she cries (unless she's bleeding, of course). You can't hear her when she whines. She doesn't get a single thing if she's crying or whining. Period.
I watch a four year old one morning a week, and he started out whining and crying to get his way. I just calmly told him that I couldn't understand him when he was whining or crying and to come and find me when he could use his big boy voice. It took a few weeks, but it worked like a charm and his mom was stunned. She bent over backwards trying to cater to him and it just taught him that he would get lots of attention when he acted up.