Guy_,
1. Buttons always loose a single "&" character as Windows interprets that as setting the next character as the accelerator key for firing the control - you need to double the "&" using StringReplace.
2. You can add the same spacing to the beginning of each line to create a standard margin like this:
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
$sText = "This is line #1" & @CRLF & "This is line #2"
_AddMargin($sText)
$hGUI = GUICreate("Test", 500, 500)
$cButton = GUICtrlCreateButton($sText, 10, 10, 580, 40, BitOR($BS_LEFT,$BS_MULTILINE))
GUICtrlSetFont(-1, 11, 600)
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _AddMargin(ByRef $sText)
$sText = " " & StringReplace($sText, @CRLF, @CRLF & " ")
EndFunc
3. Never seen bitmap colours change as you describe.
M23