don't know wether the first suggestion works, but i am sure it works with deriving and rewriting Paint()
in Button::Paint a DrawLabel 'dl' is created an painted, just add the following instruction:
dl.align = ALIGN_RIGHT
best would be to add align as a private Member to Button class and add get/set methods and in the Paint method set dl.align as the private align member.