Displaying+an+icon+on+a+pushbutton

//by Richard Russell, March 2016//

The main //BBC BASIC for Windows// help documentation tells you how to [|display a BMP image on a pushbutton] but not how to display an icon (ICO file) instead. The simple code below shows how to do that: code format="bb4w" BM_SETIMAGE = &F7 BS_ICON = 64 IMAGE_ICON = 1 LR_LOADFROMFILE = 16

INSTALL @lib$+"WINLIB5" ICOfile$ = @lib$+"..\bbchelp.ico"

hButton = FN_button("", 100, 100, 96, 96, FN_setproc(PROCclick), BS_ICON) SYS "LoadImage", 0, ICOfile$, IMAGE_ICON, 96, 96, LR_LOADFROMFILE TO hImage SYS "SendMessage", hButton, BM_SETIMAGE, IMAGE_ICON, hImage

REPEAT WAIT 1 UNTIL FALSE END

DEF PROCclick(W%, L%) PRINT "Button clicked!" ENDPROC code This code is for a standalone button displayed in the main window, but can easily be adapted for a button in a dialogue box (change the **SendMessage** call to a **SendDlgItemMessage**).

You can similarly display an icon on a **static control** as follows: code format="bb4w" IMAGE_ICON = 1 LR_LOADFROMFILE = 16 SS_ICON = 3 STM_SETIMAGE = 370

INSTALL @lib$+"WINLIB5" ICOfile$ = @lib$+"..\bbchelp.ico"

hButton = FN_staticbox("", 100, 100, 96, 96, 101, SS_ICON) SYS "LoadImage", 0, ICOfile$, IMAGE_ICON, 96, 96, LR_LOADFROMFILE TO hImage SYS "SendMessage", hButton, STM_SETIMAGE, IMAGE_ICON, hImage

REPEAT WAIT 1 UNTIL FALSE END code