ImageButton control, without DirectX

BlitzPlus Forums/BlitzPlus Programming/ImageButton control, without DirectX

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

This will create an imagebutton control using only API commands, no DirectX:

Const LR_LOADFROMFILE=16
Const IMAGE_BUTTON=0
Const GWL_STYLE=-16
Const BS_BITMAP=128
Const BM_SETIMAGE=247

win=CreateWindow("",200,200,400,300)
CreateImageButton("C:\Program Files\BlitzPlus\samples\mak\blitzlogo.bmp",0,0,ClientWidth(win),ClientHeight(win),win)

Repeat
Until WaitEvent()=$803

Function CreateImageButton(imagefile$,x,y,width,height,group)
i=LoadImageA(0,imagefile$,IMAGE_BITMAP,0,0,LR_LOADFROMFILE)
If Not i Return
button=CreateButton("",x,y,width,height,group)
hbutton=QueryObject(button,1)
flags=GetWindowLong(hbutton,GWL_STYLE)+BS_BITMAP
SetWindowLong hbutton,GWL_STYLE,flags
SendMessage(hbutton,BM_SETIMAGE,IMAGE_BITMAP,i)
Return button
End Function