$H Windows.ph
$H Messages.ph
Struct Rect = left&,top&,right&,bottom&
Struct BUTTON_IMAGELIST = himl&,margin!Rect,uAlign&
DEF &EM_SETCUEBANNER $1501
DEF &CB_SETCUEBANNER $1703
DEF &BS_COMMANDLINK $0000000E
DEF &BCM_SETNOTE $00001609
Var Ende& = 0
CLS ~GetSysColor(~COLOR_BTNFACE)
SetDialogFont ~GetStockObject(~ANSI_VAR_FONT)
'Edit mit CueBanner ( funktioniert ab XP )
Var Edit& = Create("Edit",%hwnd,"",10,10,200,24)
SendMessage(Edit&,&EM_SETCUEBANNER,0,WideString("gib was ein"))
'ComboBox mit CueBanner (funktioniert ab Vista )
Var Choice& = Create("ChoiceBox",%hwnd,2,10,40,200,200)
SendMessage(Choice&,&CB_SETCUEBANNER,0,WideString("triff deine Wahl"))
'Button als CommandLink (funktioniert ab Vista )
Var Button& = Control("BUTTON","Commandlink",~WS_CHILD | ~WS_VISIBLE | &BS_COMMANDLINK ,10,110,Width(%hwnd)-20,70,%hwnd,1000,%hInstance)
Var Notiz& = WideString("Button mit Notiz und automatischem Zeilenumbruch bei zu langen Hinweistexten. Ist ganz praktisch, man muss den Text nicht mehr selber, von Hand, umbrechen !")
SendMessage(Button&,&BCM_SETNOTE,0,Notiz&)
'Button als CommandLink (funktioniert ab Vista )
Var Button1& = Control("BUTTON","OwnerDraw und anderes Icon",~WS_CHILD | ~WS_VISIBLE | ~BS_OWNERDRAW | &BS_COMMANDLINK ,10,200,Width(%hwnd)-20,70,%hwnd,1001,%hInstance)
SendMessage(Button1&,&BCM_SETNOTE,0,Notiz&)
SendMessage(Button1&,~BM_SETIMAGE,1,~Loadicon(%hInstance,"A"))
'Button mit Icon und Text (funktioniert ab Vista )
Var Button2& = Create("BUTTON",%hwnd,"Button mit Icon",10,300,150,48)
SendMessage(Button2&,~BM_SETIMAGE, 1, ~LoadIcon(%hInstance,"eimer"))
'Button mit Imagelist und Text (funktioniert ab Vista )
Var Normal_Button_IL& = Control("BUTTON","Button mit Imagelist",~WS_CHILD | ~WS_VISIBLE | $0000000E ,210,300,200,28,%hwnd,1003,%hInstance)
'Bitmap für die Imageliste erstellen
Var BMP& = Create("hNewPic",80,16,0)
StartPaint bmp&
Usebrush 1,$FF
Ellipse 0,0-16,16
Usebrush 1,$FFFF
Ellipse 16,0-32,16
Usebrush 1,$FF00
Ellipse 32,0-48,16
Usebrush 1,$FF
Ellipse 48,0-64,16
Usebrush 1,$FF
Ellipse 64,0-80,16
EndPaint
'Imageliste mit dem Bitmap erstellen
var hIL& = @Create("ImageList", 16,16, Bmp&,0)
'das Bitmap brauchen wird nicht mehr
DeleteObject Bmp&
Var BIL# = New(BUTTON_IMAGELIST)
BIL#.himl& = hIL&,BIL#.Rect!left& = 0
BIL#.himl& = hIL&,BIL#.Rect!top& = 0
BIL#.himl& = hIL&,BIL#.Rect!right& = 0
BIL#.himl& = hIL&,BIL#.Rect!bottom& = 0
BIL#.uAlign& = 0'LINKS
'BIL#.uAlign& = 1 'RECHTS
'BIL#.uAlign& = 2 'OBEN
'BIL#.uAlign& = 3 'UNTEN
'BIL#.uAlign& = 4 'ZENTRIERT
SendMessage(Normal_Button_IL&,$1602,0,BIL#)
Dispose BIL#
WhileNot Ende&
Waitinput
EndWhile
Proc WideString
Parameters S$ : Declare w# : Dim w#,(Len(s$)*2)+2 : StringW w#,0 = S$ : Return w#
EndProc