Aw, that's horrible. But they really are used to people saying no too, so don't feel like you're the only one not giving them money. Just blank them out if they are going to be rude enough to rattle something in your face. There are so many charities out collecting this time of year that I would be in need of charity myself if I gave to them all. I know it's easier said than done, but try not to let it get you down or make you feel bad. Unfortunately I think one has to put on a bit of emotional armor in these situations.
Sounds like a smart move to block the emotional vampire ''friend'' you had there.