WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Boxes Examples from Users

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

How to Add Box Controls (multiline edit boxes, combo boxes, checkboxes, etc.) to Boxes

Keywords: 	 boxcontrols boxcontrolsudf multiline edit boxes combo boxes checkboxes,

Here's an example from Guido Sedar, showing how to add various controls to the Boxes functions.

The BoxControlsUDF.WBT file includes User Defined Functions, which make the DllCalls to the CreateWindowExA entry point in USER32.DLL, for the ComboBox, Listbox, EditBox, MultiLine EditBox, Progress bar and Pushbutton controls.

Run Examples.WBT to see how each of these controls look. Uncomment the various "Goto ..." in the example below and run it to view each of the example controls.

In this example, the box is always centered so you only have to worry about the box width and height.

These look best on 800x600. Note that sometimes you get different results depending on what OS you are using. For some reason focus works a little differently on NT vs. Win9x.


Examples.wbt

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;BoxControls 2.0 Examples                                                          ;
;All boxes have a constant size and are unresizable, they will look the same in    ;
;any resolution.                                                                   ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;

;Control Manager Extender (OPTIONAL)
;AddExtender("WWCTL34I.DLL")

#include "boxcontrolsudf.wbt"

;USE GOTO TO VIEW EXAMPLES

;Goto buttons      ;Buttons / GroupBox
;Goto combobox     ;ComboBox
;Goto progressbar  ;ProgressBar / StatusBar
;Goto multiline    ;Multiline edit / Static
Goto animate      ;AVI Animation
;Goto splash       ;Bitmap inside box


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;Buttons / GroupBox example                                                       ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
:buttons
;Messages
BM_GETSTATE = 242

;Constant box size in any resolution, unresizable, unmaximizable and centered.
hwnd = Dllhwnd("")
FixBox(hwnd, ~262144&~65536) ;Unresizable, unmaximizable.
newsize = ConvertToConstantSize(800, 600, "0,0,441,507") ;Constant
newpos = Centerpos(newsize) ;Centered

;Create  box and hide it while it is being constructed
BoxesUp("%newpos%", @icon)
BoxTitle("Buttons / GroupBox")

;Default window color
BoxColor(1, "192,192,192", 0)
BoxDrawRect(1, "0,0,1000,1000", 2)

;Push buttons
hpush1 = PushButton(5, 30, 200, 80, 30, "OK", 1)
hpush2 = PushButton(6, 230, 200, 80, 30, "Cancel", 0)

;GroupBox
GroupBox(7, 60, 20, 220, 150, "Select")

;Text
text= strcat("CheckBox",@crlf,@crlf,"Radio1",@crlf,@crlf,"Radio2",@crlf,@crlf,"3State")
BoxDrawTextEx(90, 44, 80, 115, 1, "%newpos%", text, @true, 0)

;Check, radio, 3state
hbox = Button(1, 70, 45, 3)    ;box
hradio1 = Button(2, 70, 77, 9) ;radio
hradio2 = Button(3, 70, 109, 9);radio
h3state = Button(4, 70, 141, 6);3state

;Show box when it is finished
BoxesUp("%newpos%", @normal)

;Wait for the user to hit a button
:begin1
ok=0
While ok==0 ;Loop until OK is pushed
  ;Get pushbuttons state, you can use cSendMessage from CM EX with same sintaxis,
  ;IntControl22 does not work.
  ok = SendMessage(hpush1, BM_GETSTATE, 0, 0)  ;returns nonzero when pushed
  canc = SendMessage(hpush2, BM_GETSTATE, 0, 0);returns nonzero when pushed
  If canc<>0 Then Exit                         ;Exit if cancel is pushed
EndWhile

;Get selection, you can use cCheckBox from CM EX, IntControl22 does not work.
result1 = SendMessage(hbox, BM_GETSTATE, 0, 0)
result2 = SendMessage(hradio1, BM_GETSTATE, 0, 0)
result3 = SendMessage(hradio2, BM_GETSTATE, 0, 0)
result4 = SendMessage(h3state, BM_GETSTATE, 0, 0)
Message("Settings:", StrCat("Check: ", result1, @CRLF, "Radio1: ", result2, @CRLF, "Radio2: ", result3, @CRLF, "3State: ", result4))
Goto begin1
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;ComboBox example                                                                 ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
:combobox
;Messages
CB_ADDSTRING = 323
CB_SELECTSTRING = 333

;Create box
hwnd = Dllhwnd("")
FixBox(hwnd, ~262144&~65536)
newsize = ConvertToConstantSize(800, 600, "250,375,750,625") 
newpos = Centerpos(newsize)
BoxesUp("%newpos%", @normal)
BoxTitle("ComboBox") 
BoxColor(1, "200,204,248", 0)
BoxDrawRect(1, "0,0,1000,1000", 2)

;Text
BoxDrawTextEx(20, 50, 130, 35, 1, "%newpos%", "Hit CTRL to select.%@crlf%SHIFT to exit.", @true, 0)

;ComboBox
hcombo = combobox(1, 10, 10, 200, 100)

;Add items
IntControl(22, hcombo, CB_ADDSTRING, 0, "Blue")
IntControl(22, hcombo, CB_ADDSTRING, 0, "Red")
IntControl(22, hcombo, CB_ADDSTRING, 0, "Green")

;You can set an item at the begining
IntControl(22, hcombo, CB_SELECTSTRING, 0, "Red")

;Wait for selection
While 1
  If Iskeydown(@CTRL)==@TRUE
    ;Get selection
    text = GetWindowText(hcombo, 100, 0) ;Using API
    ;text = cGetEditText(hcombo)         ;Using Control Manager EX
    Message("Choice:", text)
  EndIf
  If Iskeydown(@SHIFT)==@TRUE Then Exit
EndWhile
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;Progressbar / Statusbar example                                                  ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
:progressbar
;Messages
PBM_SETPOS = 1026
PBM_SETRANGE32 = 1030
PBM_SETBARCOLOR = 1033
PBM_SETBKCOLOR = 8193

;Create box
hwnd = Dllhwnd("")
FixBox(hwnd, ~262144&~65536)
newsize = ConvertToConstantSize(800, 600, "0,0,500,250") 
newpos = Centerpos(newsize) 
BoxesUp("%newpos%", @normal)
Boxtitle("Progress")
BoxColor(1, "192,192,192", 0)
BoxDrawRect(1, "0,0,1000,1000", 2)

;Progress bar
hprog = ProgressBar(1, 20, 40, 350, 15, 0|0)

;Set range and color(it does not work with IntControl22)
SendMessage(hprog, PBM_SETRANGE32, 0, 1000)
SendMessage(hprog, PBM_SETBKCOLOR, 0, 0)  
SendMessage(hprog, PBM_SETBARCOLOR, 0, 32768)

;Status bar
hstatus = StatusBar(2, 256)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;COLOR EXPLANATION:                                                           ;
;Color is in RGB format (Red Green Blue), amount of each color from 0 to 255. ;
;Value must be converted to decimal:                                          ;
;Bar color red:   255   0   0 (dec) --> FF  0  0 (hex) -->   255 (dec)        ;
;BK color yellow:   0 255 255 (dec) -->  0 FF FF (hex) --> 65535 (dec)        ;
;Use any drawing program to get the values.                                   ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

hwnd = Dllhwnd("")
EnableWindow(hwnd, 0) ;Disable box while processing
SetWindowText(hstatus, "Box disabled.") ;Set status bar text
BoxDataTag(1,"TAG")
For x=1 to 1000
  BoxText(StrCat(@CRLF, "   ", x, " of 1000")) 
  ;SendMessage(hprog, PBM_SETPOS, x, 0)   ;Set position using API
  IntControl(22, hprog, PBM_SETPOS, x, 0) ;Set position using IntControl22, faster?
  BoxDataClear(1,"TAG")
Next
EnableWindow(hwnd, 1) ;Enable box
SetWindowText(hstatus, "Box enabled.") ;Set status bar text

BoxText(StrCat(@CRLF, "   ", x-1, " of 1000", @CRLF, @CRLF, @CRLF, "   Hit CTRL to close."))

While 1
  If Iskeydown(@CTRL)==@TRUE Then Exit
Endwhile
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;Multiline Edit example                                                           ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
:multiline
;Messages
BM_GETSTATE = 242

;Create box
hwnd = Dllhwnd("")
FixBox(hwnd, ~262144&~65536)
newsize = ConvertToConstantSize(800, 600, "296,230,735,770") 
newpos = Centerpos(newsize)
BoxesUp("%newpos%", @normal)
BoxTitle("Multiline Edit")
BoxColor(1, "192,192,192", 0)
BoxDrawRect(1, "0,0,1000,1000", 2)

;Text
BoxDrawTextEx(25, 20, 150, 15, 1, "%newpos%", "Enter text:", @true, 0)

;Border line
Static(4, 10, 225, 325, 0, "", 16)

;Push Buttons
hpush1 = PushButton(1, 25, 240, 60, 25, "OK", 1)  
hpush2 = PushButton(2, 255, 240, 60, 25, "Cancel", 0)  

;Multiline Edit
hmulti = MultiLineEdit(3, 23, 40, 295, 170, 0, 0, 0)

;Wait for the user to hit a button
:begin2
SetFocus(hmulti) ;Set focus on multiedit control.
ok=0
While ok==0 ;Loop until OK is pushed
  ok = SendMessage(hpush1, BM_GETSTATE, 0, 0)  ;returns nonzero when pushed
  canc = SendMessage(hpush2, BM_GETSTATE, 0, 0);returns nonzero when pushed
  If canc<>0 Then Exit                         ;Exit if cancel is pushed
EndWhile

;Get multiline contents
txt = GetWindowText(hmulti, 1000, 0) ;Using API
;txt = cGetEditText(hmulti)          ;Using Control Manager EX
Message("Multiline Contents:", txt)
Goto begin2
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;Animate control example using a SHELL32.DLL AVI clip.                            ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
:animate
;Animate control messages
ACM_OPENA = 1124
ACM_PLAY = 1125
ACM_STOP = 1126

;Create box
hwnd = Dllhwnd("")
FixBox(hwnd, ~262144&~524288)
newsize = ConvertToConstantSize(800, 600, "250,375,750,625")
newpos = Centerpos(newsize)
BoxesUp("%newpos%", @normal)
BoxTitle("Animate Control")
BoxColor(1, "192,192,192", 0)
BoxDrawRect(1, "0,0,1000,1000", 2)

;Get handle of the module that contains the windows animations
library = StrCat(DirWindows(1), "SHELL32.DLL") 
handlemodule = LoadLibrary(library)

;Free library
FreeLibrary(handlemodule)

;Create Animate control (transparent to match the default window color)
hanimate = Animate(1, 20, 10, 70, 70, 1130|256)

;Open animation Flashlight
SendMessage(hanimate, ACM_OPENA, handlemodule, 150)

;Play animation
SendMessage(hanimate, ACM_PLAY, -1, 0|-1)

;Do processing
BoxDataTag(1,"TAG")
for x=0 to 1999
boxtext(strcat(@crlf,@tab,@tab,"Searching files... ", x))
BoxDataClear(1,"TAG")
next
boxtext(strcat(@crlf,@tab,@tab,"Searching files... ", x,@crlf,@tab,@tab,"Complete."))

;Stop animation
SendMessage(hanimate, ACM_STOP, 0, 0)

timedelay(3)
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;Splash screen example                                                            ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
:splash
;Messages
IMAGE_BITMAP = 0
LR_LOADFROMFILE = 16
SRCCOPY = 13369376

;Ceate box
hInst = DllHinst("")
hwnd = dllhwnd("")
FixBox(hwnd, 8388608) ;Popup mode with border
newsize = ConvertToConstantSize(800, 600, "0,0,375,510") ;Constant size                     
newpos = Centerpos(newsize) ;Centered 
BoxesUp("%newpos%", @ICON) ;Hide box while processing

;Load bitmap
hbitmap = LoadImage(hInst, "xenoost.bmp", IMAGE_BITMAP, 300, 304, LR_LOADFROMFILE)

;Get the DC associated with the box
hdc = GetDC(hwnd)

;Get a DC that is of the same size and type of DC we pass in
image_dc = CreateCompatibleDC(hdc)

;Select the bitmap object into the specified DC
old_hbitmap = SelectObject(image_dc, hbitmap)

;Show box
BoxesUp("%newpos%", @NORMAL)

;Transfer data from source DC to destination DC
BitBlt(hdc, 0, 0, 300, 304, image_dc, 0, 0, SRCCOPY)

;Do processing
timedelay(10)

;Free resources
SelectObject(image_dc, old_hbitmap)
DeleteObject(hbitmap)
ReleaseDC(hwnd, hdc)
DeleteDC(image_dc)
;END











BoxControlsUDF.WBT

  1. GetWindowText returns the text of the control.

  2. SetWindowText sets the text of the control.

  3. SetFocus sets the keyboard focus to the control.
;BoxControls 2.0
;Window Controls & Pictures inside Boxes.
;See examples.wbt  
;Guido 11/01


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;ComboBox                                                                         ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;id     : control id                                                              ;
;x      : pixels from left of parent window                                       ;
;y      : pixels from top of parent window                                        ;
;width  : width in pixels                                                         ;
;height : height in pixels                                                        ;
;Returns: control handle                                                          ;
;Basic messages: CB_ADDSTRING = 323                                               ;
;                CB_SELECTSTRING = 333                                            ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction ComboBox(id, x, y, Width, Height)
hWndParent = DLLhWnd("")
hInstance = DLLhInst("")
sDLLName = StrCat(DirWindows(1), "User32.DLL")
hcombo = DLLCall(sDLLName,long:"CreateWindowExA",long:512,lpstr:"ComboBox",long:0,long:2|16384 << 16|4096 << 16|32 << 16|128,long:x,long:y,long:Width,long:Height,long:hWndParent,long:Id,long:hInstance,long:0)
Return hcombo
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;ListBox                                                                          ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;id     : control id                                                              ;
;x      : pixels from left of parent window                                       ;
;y      : pixels from top of parent window                                        ;
;width  : width in pixels                                                         ;
;height : height in pixels                                                        ;
;mode   : 0 single selection                                                      ;
;         8 multiple selection                                                    ;
;Returns: control handle                                                          ;
;Basic messages: LB_ADDSTRING = 384                                               ;
;                LB_RESETCONTENT = 388                                            ;       
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction ListBox(id, x, y, Width, Height, mode)
hWndParent = DLLhWnd("")
hInstance = DLLhInst("")
sDLLName = StrCat(DirWindows(1), "User32.DLL")
hlist = DLLCall(sDLLName,long:"CreateWindowExA",long:512,lpstr:"ListBox",long:0,long:16384 << 16|1024|4096 << 16|32 << 16|128|mode,long:x,long:y,long:Width,long:Height,long:hWndParent,long:Id,long:hInstance,long:0)
Return hlist
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;EditBox                                                                          ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;id     : control id                                                              ;
;x      : pixels from left of parent window                                       ;
;y      : pixels from top of parent window                                        ;
;width  : width in pixels                                                         ;
;height : height in pixels                                                        ;                                                
;Returns: control handle                                                          ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction EditBox(id, x, y, Width, Height)
hWndParent = DLLhWnd("")
hInstance = DLLhInst("")
sDLLName = StrCat(DirWindows(1), "User32.DLL")
hedit = DLLCall(sDLLName,long:"CreateWindowExA",long:512,lpstr:"Edit",long:0,long:16384 << 16|4096 << 16|128|1 << 16,long:x,long:y,long:Width,long:Height,long:hWndParent,long:Id,long:hInstance,long:0)
Return hedit
#EndFunction
; 


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;MultiLine EditBox                                                                ; 
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;id     : control id                                                              ;
;x      : pixels from left of parent window                                       ;
;y      : pixels from top of parent window                                        ;
;width  : width in pixels                                                         ;
;height : height in pixels                                                        ;
;hscroll: 1 horizontal scroll bar                                                 ;
;         0 no horizontal scroll bar                                              ;
;vscroll: 1 vertical scroll bar                                                   ;
;         0 no vertical scroll bar                                                ;
;mode   : 0 edit                                                                  ;
;         2048 read only                                                          ;
;Returns: control handle                                                          ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction MultiLineEdit(id, x, y, width, height, hscroll, vscroll, mode)
If hscroll==1 Then hscroll = 1048576
Else hscroll=0
If vscroll==1 Then vscroll = 2097152
Else vscroll=0
hWndParent = DLLhWnd("")
hInstance = DLLhInst("")
sDLLName = StrCat(DirWindows(1), "User32.DLL")
hmulti = DLLCall(sDLLName,long:"CreateWindowExA",long:512,lpstr:"Edit",long:0,long:4|4096|16384 << 16|4096 << 16|1 << 16|0|hscroll|vscroll|mode,long:x,long:y,long:Width,long:Height,long:hWndParent,long:Id,long:hInstance,long:0)
Return hmulti
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;Progress Bar                                                                     ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~; 
;id     : control id                                                              ;
;x      : pixels from left of parent window                                       ;
;y      : pixels from top of parent window                                        ;
;width  : width in pixels                                                         ;
;height : height in pixels                                                        ;
;flags  : 1 smooth                                                                ;
;         0 splitted                                                              ;
;         0 horizontal                                                            ;
;         4 vertical                                                              ;
;Returns: control handle                                                          ;
;Basic messages : PBM_SETPOS = 1026                                               ;
;                 PBM_SETRANGE32 = 1030                                           ;
;                 PBM_SETBARCOLOR = 1033                                          ;
;                 PBM_SETBKCOLOR = 8193                                           ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction ProgressBar(id, x, y, width, height, flags)
dll = StrCat(DirWindows(1),"user32.dll")
hwnd = Dllhwnd("")
hinst = Dllhinst("")
hprog = Dllcall(dll,long:"CreateWindowExA",long:0,lpstr:"msctls_progress32",lpstr:"",long:flags|268435456|1073741824,long:x,long:y,long:width,long:height,long:hwnd,long:id,long:hinst,long:0)
Return hprog
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;Check, Radio and 3State buttons                                                  ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;id     : control id                                                              ;
;x      : pixels from left of parent window                                       ;
;y      : pixels from top of parent window                                        ;
;type   : 3 checkbox button                                                       ;
;         9 radio button (grey background)                                        ;
;         6 3state button                                                         ;
;Returns: control handle                                                          ;
;Basic messages: BM_GETSTATE = 242                                                ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction Button(id, x, y, type)
hWndParent = DLLhWnd("")
hInstance = DLLhInst("")
sDLLName = StrCat(DirWindows(1), "User32.DLL")
hbut = DLLCall(sDLLName,long:"CreateWindowExA",long:0,lpstr:"Button",long:0,long:16384<<16|4096 <<16|type,long:x,long:y,long:13,long:13,long:hWndParent,long:Id,long:hInstance,long:0)
Return hbut
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;GetWindowText: Gets the window title or text of the control.                     ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;hwnd    : handle of the window or control.                                       ;
;bufsize : size of the buffer that will recieve the text.                         ;
;read    : maximum number of characters to copy to the buffer, or 0 to fill the   ;
;          whole buffer.                                                          ;
;returns : contents of the buffer(string).                                        ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction GetWindowText(hwnd, bufsize, read)
If read==0 Then read=bufsize+1
Else read=read+1
sDLLName = StrCat(DirWindows(1), "user32.dll")
buftext = binaryalloc(bufsize)
DLLCall(sDLLName, long:"GetWindowTextA",  long:hwnd, lpbinary:buftext, long:read)
BinaryEodSet(buftext, bufsize) 
contents = BinaryPeekstr(buftext, 0, read)
BinaryFree(buftext)
Return contents
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;SetWindowText :Changes the text of the window’s title or the text of the control.;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;hwnd : handle of the window or control.                                          ;
;text : new title or control text.                                                ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction SetWindowText(hwnd, text)
sDLLName = StrCat(DirWindows(1), "user32.dll")
result = DLLCall(sDLLName, long:"SetWindowTextA", long:hwnd, lpstr:text)
Return result
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;PushButton                                                                       ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;id     : control id                                                              ;
;x      : pixels from left of parent window                                       ;
;y      : pixels from top of parent window                                        ;
;width  : width in pixels                                                         ;
;height : height in pixels                                                        ;
;text   : button text                                                             ;
;flags  : 0 normal button                                                         ;  
;         1 default button                                                        ;
;Returns: control handle                                                          ;
;Basic message: BM_GETSTATE = 242                                                 ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction PushButton(id, x, y, width, height, text, flags)
hWndParent = DLLhWnd("")
hInstance = DLLhInst("")
sDLLName = StrCat(DirWindows(1), "User32.DLL")
hbut = DLLCall(sDLLName,long:"CreateWindowExA",long:0,lpstr:"Button",long:0,long:16384<<16|4096 <<16|flags,long:x,long:y,long:width,long:height,long:hWndParent,long:Id,long:hInstance,long:0)
SetWindowText(hbut, text) ;Set text using API.
;cSetWndText(hbut, text)  ;Set text using control manager EX.
Return hbut
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;Static : Displays a static text(grey background), use BoxTextEx for varying text ;
;        or to change the font.                                                   ;    ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;id     : control id                                                              ;
;x      : pixels from left of parent window                                       ;
;y      : pixels from top of parent window                                        ;
;width  : width in pixels                                                         ;
;height : height in pixels                                                        ;
;text   : text to display in the label                                            ;
;flags  : 1 center                                                                ;
;         0 left                                                                  ;
;         2 right                                                                 ;
;         16 draws a simple line of the especified width                          ;
;         4096 the label will have a 3d border                                    ;
;Returns: control handle                                                          ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;         
#DefineFunction Static(id, x, y, width, height, text, flags)
hWndParent = DLLhWnd("")
hInstance = DLLhInst("")
sDLLName = StrCat(DirWindows(1), "User32.DLL")
hstatic = DLLCall(sDLLName,long:"CreateWindowExA",long:256,lpstr:"Static",long:0,long:16384 << 16|4096 << 16|128|flags,long:x,long:y,long:Width,long:Height,long:hWndParent,long:Id,long:hInstance,long:0)
SetWindowText(hstatic, text)
Return hstatic
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;GroupBox                                                                         ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;id     : control id                                                              ;
;x      : pixels from left of parent window                                       ;
;y      : pixels from top of parent window                                        ;
;width  : width in pixels                                                         ;
;heigth : height in pixels                                                        ;
;text   : text to display at the top left (grey background)                       ;
;Returns: control handle                                                          ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction GroupBox(id, x, y, width, height, text)
hWndParent = DLLhWnd("")
hInstance = DLLhInst("")
sDLLName = StrCat(DirWindows(1), "User32.DLL")
hgroup = DLLCall(sDLLName,long:"CreateWindowExA",long:32,lpstr:"Button",long:0,long:16384 << 16|4096 << 16|7,long:x,long:y,long:Width,long:Height,long:hWndParent,long:Id,long:hInstance,long:0)
SetWindowText(hgroup, text)
Return hgroup
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;Status bar : Simple status bar, one division only.                               ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;id      : control id                                                             ;
;text    : text to display                                                        ;
;flags   : 256 client edge                                                        ;
;          512 window edge                                                        ;
;Returns : control handle                                                         ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction StatusBar(id, flags)
hWndParent = DLLhWnd("")
hInstance = DLLhInst("")
sDLLName = StrCat(DirWindows(1), "User32.DLL")
hstatus = DLLCall(sDLLName,long:"CreateWindowExA",long:flags,lpstr:"msctls_statusbar32",long:0,long:16384 << 16|4096 << 16,long:0,long:0,long:0,long:0,long:hWndParent,long:id,long:hInstance,long:0)
Return hstatus
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;EnableWindow : Disables  mouse and keyboard input to the box avoiding slow down  ;
;               when moving the cursor over it.                                   ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;hwnd   : handle of the window or control                                         ;
;action : 0 disable window                                                        ;
;         1 enable window                                                         ;
;Returns: true if succeeds, zero if it fails.                                     ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction EnableWindow(hwnd, action)
sDLLName = StrCat(DirWindows(1), "user32.DLL")
result = DLLCall(sDLLName, long:"EnableWindow", long:hwnd, long:action)
Return result
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;SendMessage : Sends the specified message to a window or windows.                ;                   ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;hwnd   : window(control) handle whose window procedure will receive the message. ;                                           ;
;wMsg   : message to be sent.                                                     ;
;wParam : additional message-specific information.                                ;
;lParam : additional message-specific information.                                ;                                       ;
;Returns: result of the message processing, depends on the message sent.          ;                           ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction SendMessage(hwnd, wMsg, wParam, lParam)
sDLLName = StrCat(DirWindows(1), "user32.dll")
result = DLLCall(sDLLName, long:"SendMessageA", long:hwnd, long:wMsg, long:wParam, long:lParam)
Return result
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;SetFocus : Sets the keyboard focus to the specified window or control.           ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;hwnd : handle of the window or control that will receive the keyboard input.     ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction SetFocus(hwnd)
sDLLName = StrCat(DirWindows(1), "user32.dll")
result = DLLCall(sDLLName, long:"SetFocus", long:hwnd)
Return result
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;ConvertToConstantSize : Constant box size in any resolution.                     ;                                                                                                 ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;origXres, origYres : original resolution                                         ;
;coord   : box coordinates                                                        ;
;Returns : new box coordinates                                                    ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction ConvertToConstantSize(origXres, origYres, coord)
X = WinMetrics(0)
Y = WinMetrics(1)
x1 = ItemExtract(1, coord, ",")
y1 = ItemExtract(2, coord, ",")
x2 = ItemExtract(3, coord, ",")
y2 = ItemExtract(4, coord, ",")
x1new = (x1 * origXres) / X
y1new = (y1 * origYres) /Y
x2new = (x2 * origXres) / X
y2new = (y2 * origYres) / Y
Return StrCat(x1new, ",", y1new, ",", x2new, ",", y2new)
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;CenterPos : Centers a box on the screen.                                         ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;coord   : box coordinates                                                        ;
;Returns : new box coordinates                                                    ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction CenterPos(coord)
x1 = ItemExtract(1, coord, ",")
y1 = ItemExtract(2, coord, ",")
x2 = ItemExtract(3, coord, ",")
y2 = ItemExtract(4, coord, ",")
w = x2-x1
h = y2-y1
x1new = (1000-w)/2
y1new = (1000-h)/2
x2new = x1new + w
y2new = y1new + h
Return StrCat(x1new, ",", y1new, ",", x2new, ",", y2new)
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;FixBox : Sets window style.                                                      ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;hwnd  : window handle                                                            ;
;flags : Use '&' to combine flags                                                 ;
;        ~262144    unresizable                                                   ;
;        ~65536     remove maximize                                               ;
;        ~131072    remove minimize                                               ;
;        ~12582912  remove caption                                                ;
;        ~524288    remove system menu                                            ;
;        2147483648 pop up mode                                                   ;
;        8388608    pop up mode with border                                       ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction FixBox(hwnd, flags)
User32 = StrCat(DirWindows(1),"USER32.DLL")
OldStyle = DllCall(User32, long:"GetWindowLongA", long:hwnd, long:-16)
NewStyle = OldStyle & flags
result = DllCall(User32, long:"SetWindowLongA", long:hwnd, long:-16, long:NewStyle)
Return result
#EndFunction


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;BoxDrawTextEx : Draws a rectangle with text.                                     ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;x        : pixels from left of parent window                                     ;
;y        : pixels from top of parent window                                      ;
;width    : width in pixels                                                       ;
;heigth   : height in pixels                                                      ;
;bID      : box id                                                                ;
;bcoord   : box coordinates                                                       ;
;text     : text to display                                                       ;
;flag     : @TRUE if background should be cleared; @FALSE if it shouldn't         ;
;alignment:0 left justified                                                       ;
;          1 centered horizontally                                                ;
;          2 right-justified                                                      ;
;          4 centered vertically                                                  ;
;          8 bottom-justified (single line only)                                  ;
;          16 wrap long lines                                                     ;
;          32 adjust font so that text fills width of bounding rectangle          ;
;             (single line only)                                                  ;
;          64 right-justify text by adding space between words                    ;
;          128 clip (truncate) text if it doesn't fit within specified rectangle  ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction BoxDrawTextEx(x, y, w, h, bID, bcoord, text, flag, alignment)
xres = winmetrics(0)
yres = winmetrics(1)

bx1 = itemextract(1,bcoord,",")
by1 = itemextract(2,bcoord,",")
bx2 = itemextract(3,bcoord,",")
by2 = itemextract(4,bcoord,",")

;Box dimensions in units
bwu = bx2-bx1
bhu = by2-by1

;Client area dimensions in pixels
cw = ((bwu*xres)/1000)-8
ch = ((bhu*yres)/1000)-27

;TextRect coordinates in units
x1 = (x*1000) / cw
y1 = (y*1000) / ch
x2 = x1 + (w*1000)/cw
y2 = y1 + (h*1000)/ch
coord = StrCat(x1,",",y1,",",x2,",",y2)
Execute BoxDrawText(bID, "%coord%", text, flag, alignment)
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;LoadLibrary : Maps the specified executable module into the address space of the ;
;calling process.                                                                 ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;FileName :A string that names the executable module (either a .DLL or .EXE file).;
;Returns  :If the function succeeds, the return value is a handle to the module.  ;
;          If the function fails, the return value is NULL.                       ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction LoadLibrary(FileName)
sDLLName = StrCat(DirWindows(1), "kernel32.dll")
hLibModule = DLLCall(sDLLName, long:"LoadLibraryA", lpstr:FileName)
Return hLibModule
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;FreeLibrary : Decrements the reference count of the loaded DLL module.           ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;hLibModule : Identifies the loaded library module.                               ;
;Returns    : If the function succeeds, the return value is nonzero.              ;
;             If the function fails, the return value is zero.                    ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction FreeLibrary(hLibModule)
sDLLName = StrCat(DirWindows(1), "kernel32.dll")
result = DLLCall(sDLLName, long:"FreeLibrary", long:hLibModule)
Return result
#EndFunction
;


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;Animate :Creates an .avi animation control                                       ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
;See help file.                                                                   ;
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
#DefineFunction Animate(id, x, y, width, height, flags)
hWndParent = DLLhWnd("")
hInstance = DLLhInst("")
sDLLName = StrCat(DirWindows(1), "User32.DLL")
hanimate = DLLCall(sDLLName,long:"CreateWindowExA",long:0,lpstr:"SysAnimate32",long:0,long:16384 << 16|4096 << 16|flags,long:x,long:y,long:width,long:height,long:hWndParent,long:Id,long:hInstance,long:0)
Return hanimate
#EndFunction
;


;See help file
#DefineFunction LoadImage(hInst, name, type, width, height, load)
sDLLName = StrCat(DirWindows(1), "user32.dll")
himage = DLLCall(sDLLName, long:"LoadImageA", long:hInst,lpstr:name, long:type, long:width, long:height, long:load)
Return himage
#EndFunction
;


;See help file
#DefineFunction GetDC(hwnd)
sDLLName = StrCat(DirWindows(1), "user32.dll")
hdc = DLLCall(sDLLName, long:"GetDC", long:hwnd)
Return hdc
#EndFunction
;


;See help file
#DefineFunction CreateCompatibleDC(hdc)
sDLLName = StrCat(DirWindows(1), "gdi32.dll")
hcdc = DLLCall(sDLLName, long:"CreateCompatibleDC", long:hdc)
Return hcdc
#EndFunction
;


;See help file
#DefineFunction BitBlt(hDestDC, x, y, width, height, hSrcDC, xSrc, ySrc, dwRop)
sDLLName = StrCat(DirWindows(1), "gdi32.dll")
result =DLLCall(sDLLName, long:"BitBlt", long:hDestDC, long:x, long:y, long:width, long:height, long:hSrcDC, long:xSrc, long:ySrc, long:dwRop)
Return result
#EndFunction
;


;See help file
#DefineFunction SelectObject(hdc, hObject)
sDLLName = StrCat(DirWindows(1), "gdi32.dll")
hobject = DLLCall(sDLLName, long:"SelectObject", long:hdc, long:hObject)
Return hobject
#EndFunction
;


;See help file
#DefineFunction DeleteObject(hObject)
sDLLName = StrCat(DirWindows(1), "gdi32.dll")
result = DLLCall(sDLLName, long:"DeleteObject", long:hObject)
Return result
#EndFunction
;


;See help file
#DefineFunction ReleaseDC(hwnd, hdc)
sDLLName = StrCat(DirWindows(1), "user32.dll")
result = DLLCall(sDLLName, long:"ReleaseDC", long:hwnd, long:hdc)
Return result
#EndFunction
;


;See help file
#DefineFunction DeleteDC(hdc)
sDLLName = StrCat(DirWindows(1), "gdi32.dll")
result = DLLCall(sDLLName, long:"DeleteDC", long:hdc)
Return result
#EndFunction
;END






To download the help file that documents how to use Guido's Box Controls:
Guido's help files in HTML
and to download all of Guido's examples, including a BMP for the splash example:
All of Guido's Example Code

Doc.TXT

Values to use in dwStyle or intcontrol.
Convert to decimal to use it in WinBatch.

*********************************************************************
*                        EDIT CONTROL                               *
*********************************************************************

' Edit Control Styles
Public Const ES_LEFT = &H0&
Public Const ES_CENTER = &H1&
Public Const ES_RIGHT = &H2&
Public Const ES_MULTILINE = &H4&
Public Const ES_UPPERCASE = &H8&
Public Const ES_LOWERCASE = &H10&
Public Const ES_PASSWORD = &H20&
Public Const ES_AUTOVSCROLL = &H40&
Public Const ES_AUTOHSCROLL = &H80&
Public Const ES_NOHIDESEL = &H100&
Public Const ES_OEMCONVERT = &H400&
Public Const ES_READONLY = &H800&
Public Const ES_WANTRETURN = &H1000&

' Edit Control Notification Codes
Public Const EN_SETFOCUS = &H100
Public Const EN_KILLFOCUS = &H200
Public Const EN_CHANGE = &H300
Public Const EN_UPDATE = &H400
Public Const EN_ERRSPACE = &H500
Public Const EN_MAXTEXT = &H501
Public Const EN_HSCROLL = &H601
Public Const EN_VSCROLL = &H602

' Edit Control Messages
Public Const EM_GETSEL = &HB0
Public Const EM_SETSEL = &HB1
Public Const EM_GETRECT = &HB2
Public Const EM_SETRECT = &HB3
Public Const EM_SETRECTNP = &HB4
Public Const EM_SCROLL = &HB5
Public Const EM_LINESCROLL = &HB6
Public Const EM_SCROLLCARET = &HB7
Public Const EM_GETMODIFY = &HB8
Public Const EM_SETMODIFY = &HB9
Public Const EM_GETLINECOUNT = &HBA
Public Const EM_LINEINDEX = &HBB
Public Const EM_SETHANDLE = &HBC
Public Const EM_GETHANDLE = &HBD
Public Const EM_GETTHUMB = &HBE
Public Const EM_LINELENGTH = &HC1
Public Const EM_REPLACESEL = &HC2
Public Const EM_GETLINE = &HC4
Public Const EM_LIMITTEXT = &HC5
Public Const EM_CANUNDO = &HC6
Public Const EM_UNDO = &HC7
Public Const EM_FMTLINES = &HC8
Public Const EM_LINEFROMCHAR = &HC9
Public Const EM_SETTABSTOPS = &HCB
Public Const EM_SETPASSWORDCHAR = &HCC
Public Const EM_EMPTYUNDOBUFFER = &HCD
Public Const EM_GETFIRSTVISIBLELINE = &HCE
Public Const EM_SETREADONLY = &HCF
Public Const EM_SETWORDBREAKPROC = &HD0
Public Const EM_GETWORDBREAKPROC = &HD1
Public Const EM_GETPASSWORDCHAR = &HD2



*********************************************************************
*                       BUTTON CONTROL                              *
*********************************************************************

' Button Control Styles
Public Const BS_PUSHBUTTON = &H0&
Public Const BS_DEFPUSHBUTTON = &H1&
Public Const BS_CHECKBOX = &H2&
Public Const BS_AUTOCHECKBOX = &H3&
Public Const BS_RADIOBUTTON = &H4&
Public Const BS_3STATE = &H5&
Public Const BS_AUTO3STATE = &H6&
Public Const BS_GROUPBOX = &H7&
Public Const BS_USERBUTTON = &H8&
Public Const BS_AUTORADIOBUTTON = &H9&
Public Const BS_OWNERDRAW = &HB&
Public Const BS_LEFTTEXT = &H20&

' User Button Notification Codes
Public Const BN_CLICKED = 0
Public Const BN_PAINT = 1
Public Const BN_HILITE = 2
Public Const BN_UNHILITE = 3
Public Const BN_DISABLE = 4
Public Const BN_DOUBLECLICKED = 5

' Button Control Messages
Public Const BM_GETCHECK = &HF0
Public Const BM_SETCHECK = &HF1
Public Const BM_GETSTATE = &HF2
Public Const BM_SETSTATE = &HF3
Public Const BM_SETSTYLE = &HF4



*********************************************************************
*                     LIST BOX CONTROL                              *
*********************************************************************

' Listbox messages
Public Const LB_ADDSTRING = &H180
Public Const LB_INSERTSTRING = &H181
Public Const LB_DELETESTRING = &H182
Public Const LB_SELITEMRANGEEX = &H183
Public Const LB_RESETCONTENT = &H184
Public Const LB_SETSEL = &H185
Public Const LB_SETCURSEL = &H186
Public Const LB_GETSEL = &H187
Public Const LB_GETCURSEL = &H188
Public Const LB_GETTEXT = &H189
Public Const LB_GETTEXTLEN = &H18A
Public Const LB_GETCOUNT = &H18B
Public Const LB_SELECTSTRING = &H18C
Public Const LB_DIR = &H18D
Public Const LB_GETTOPINDEX = &H18E
Public Const LB_FINDSTRING = &H18F
Public Const LB_GETSELCOUNT = &H190
Public Const LB_GETSELITEMS = &H191
Public Const LB_SETTABSTOPS = &H192
Public Const LB_GETHORIZONTALEXTENT = &H193
Public Const LB_SETHORIZONTALEXTENT = &H194
Public Const LB_SETCOLUMNWIDTH = &H195
Public Const LB_ADDFILE = &H196
Public Const LB_SETTOPINDEX = &H197
Public Const LB_GETITEMRECT = &H198
Public Const LB_GETITEMDATA = &H199
Public Const LB_SETITEMDATA = &H19A
Public Const LB_SELITEMRANGE = &H19B
Public Const LB_SETANCHORINDEX = &H19C
Public Const LB_GETANCHORINDEX = &H19D
Public Const LB_SETCARETINDEX = &H19E
Public Const LB_GETCARETINDEX = &H19F
Public Const LB_SETITEMHEIGHT = &H1A0
Public Const LB_GETITEMHEIGHT = &H1A1
Public Const LB_FINDSTRINGEXACT = &H1A2
Public Const LB_SETLOCALE = &H1A5
Public Const LB_GETLOCALE = &H1A6
Public Const LB_SETCOUNT = &H1A7
Public Const LB_MSGMAX = &H1A8

' Listbox Styles
Public Const LBS_NOTIFY = &H1&
Public Const LBS_SORT = &H2&
Public Const LBS_NOREDRAW = &H4&
Public Const LBS_MULTIPLESEL = &H8&
Public Const LBS_OWNERDRAWFIXED = &H10&
Public Const LBS_OWNERDRAWVARIABLE = &H20&
Public Const LBS_HASSTRINGS = &H40&
Public Const LBS_USETABSTOPS = &H80&
Public Const LBS_NOINTEGRALHEIGHT = &H100&
Public Const LBS_MULTICOLUMN = &H200&
Public Const LBS_WANTKEYBOARDINPUT = &H400&
Public Const LBS_EXTENDEDSEL = &H800&
Public Const LBS_DISABLENOSCROLL = &H1000&
Public Const LBS_NODATA = &H2000&
Public Const LBS_STANDARD = (LBS_NOTIFY Or LBS_SORT Or WS_VSCROLL Or WS_BORDER)



*********************************************************************
*                        COMBO BOX CONTROL                          *
*********************************************************************

' Combo Box Notification Codes
Public Const CBN_ERRSPACE = (-1)
Public Const CBN_SELCHANGE = 1
Public Const CBN_DBLCLK = 2
Public Const CBN_SETFOCUS = 3
Public Const CBN_KILLFOCUS = 4
Public Const CBN_EDITCHANGE = 5
Public Const CBN_EDITUPDATE = 6
Public Const CBN_DROPDOWN = 7
Public Const CBN_CLOSEUP = 8
Public Const CBN_SELENDOK = 9
Public Const CBN_SELENDCANCEL = 10

' Combo Box styles
Public Const CBS_SIMPLE = &H1&
Public Const CBS_DROPDOWN = &H2&
Public Const CBS_DROPDOWNLIST = &H3&
Public Const CBS_OWNERDRAWFIXED = &H10&
Public Const CBS_OWNERDRAWVARIABLE = &H20&
Public Const CBS_AUTOHSCROLL = &H40&
Public Const CBS_OEMCONVERT = &H80&
Public Const CBS_SORT = &H100&
Public Const CBS_HASSTRINGS = &H200&
Public Const CBS_NOINTEGRALHEIGHT = &H400&
Public Const CBS_DISABLENOSCROLL = &H800&

' Combo Box messages
Public Const CB_GETEDITSEL = &H140
Public Const CB_LIMITTEXT = &H141
Public Const CB_SETEDITSEL = &H142
Public Const CB_ADDSTRING = &H143
Public Const CB_DELETESTRING = &H144
Public Const CB_DIR = &H145
Public Const CB_GETCOUNT = &H146
Public Const CB_GETCURSEL = &H147
Public Const CB_GETLBTEXT = &H148
Public Const CB_GETLBTEXTLEN = &H149
Public Const CB_INSERTSTRING = &H14A
Public Const CB_RESETCONTENT = &H14B
Public Const CB_FINDSTRING = &H14C
Public Const CB_SELECTSTRING = &H14D
Public Const CB_SETCURSEL = &H14E
Public Const CB_SHOWDROPDOWN = &H14F
Public Const CB_GETITEMDATA = &H150
Public Const CB_SETITEMDATA = &H151
Public Const CB_GETDROPPEDCONTROLRECT = &H152
Public Const CB_SETITEMHEIGHT = &H153
Public Const CB_GETITEMHEIGHT = &H154
Public Const CB_SETEXTENDEDUI = &H155
Public Const CB_GETEXTENDEDUI = &H156
Public Const CB_GETDROPPEDSTATE = &H157
Public Const CB_FINDSTRINGEXACT = &H158
Public Const CB_SETLOCALE = &H159
Public Const CB_GETLOCALE = &H15A
Public Const CB_MSGMAX = &H15B



*********************************************************************
*                    PROGRESS BAR CONTROL                           *
*********************************************************************

' Progress bar messages
PBM_SETRANGE = 1025
PBM_SETPOS = 1026 
PBM_DELTAPOS = 1027
PBM_SETSTEP = 1028
PBM_STEPIT  = 1029 
PBM_SETRANGE32 = 1030
PBM_SETBARCOLOR = 1033
PBM_SETBKCOLOR = 8193








In the following example, Stan Littlefield put the above DOC.TXT file into XML and converted the HEX to Decimal, and also included a script (Controls.WBT) to display the settings (could easily be converted to edit values, or pasted to clipboard for inclusion in scripts).

Controls.WBT

adOpenDynamic    = 2
adOpenKeySet     = 1
adLockOptimistic = 3
adLockBatchOptimistic = 4
adCmdTable       = 2
adCmdTableDirect = 512
adCmdText        = 1


RS  = ObjectOpen("ADODB.RecordSet")
RS.Open("CONTROLS.XML","Provider=MSPersist;",2,4,256)
RS.MoveFirst()

Gosub makevars

lGo = @TRUE
While @TRUE
   DCFormat=`WWWDLGED,5.0`
   DCCaption=`Dialog Controls`
   DCX=11
   DCY=27
   DCWidth=242
   DCHeight=78
   DCNumControls=11
   DC01=`46,4,180,DEFAULT,VARYTEXT,cVar,""`
   DC02=`6,4,36,DEFAULT,STATICTEXT,DEFAULT,"Variable"`
   DC03=`6,18,36,DEFAULT,STATICTEXT,DEFAULT,"Class"`
   DC04=`46,18,150,DEFAULT,VARYTEXT,cClass,""`
   DC05=`6,32,36,DEFAULT,STATICTEXT,DEFAULT,"HEX"`
   DC06=`44,32,36,DEFAULT,EDITBOX,cHex,""`
   DC07=`86,32,36,DEFAULT,STATICTEXT,DEFAULT,"DECIMAL"`
   DC08=`124,32,64,DEFAULT,EDITBOX,nDEC,""`
   DC09=`4,54,64,DEFAULT,PUSHBUTTON,DEFAULT,"Done Viewing",1`
   DC10=`84,54,64,DEFAULT,PUSHBUTTON,DEFAULT,"Next",2`
   DC11=`170,54,64,DEFAULT,PUSHBUTTON,DEFAULT,"Previous",3`
   ButtonPushed=Dialog("DC")
   Switch ButtonPushed
      Case 1
         lGo = @FALSE
         break
      Case 2
         RS.MoveNext()
         If RS.Eof()
            message("Cannot Proceed","You Are At The End Of The Recordset")
            RS.MovePrevious()
         Endif
         Gosub makevars
         break
      Case 3
         RS.MovePrevious()
         If RS.Bof()
            message("Cannot Proceed","You Are At The Beginning Of The Recordset")
            RS.MoveNext()
         Endif
         Gosub makevars
         break
   EndSwitch
   If ! lGo
      Break
   Endif
EndWhile

:end
RS.Close()
ObjectClose(RS)
Exit



:makevars
fld      = RS.Fields("varname")
cVar     = fld.Value
fld      = RS.Fields("class")
cClass   = fld.Value
fld      = RS.Fields("hex")
cHex     = fld.Value
fld      = RS.Fields("dec")
nDec     = fld.Value
Return


and the XML file to go with the above:

Controls.XML

<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
	xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
	xmlns:rs='urn:schemas-microsoft-com:rowset'
	xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
	<s:ElementType name='row' content='eltOnly' rs:updatable='true'>
		<s:AttributeType name='varname' rs:number='1' rs:writeunknown='true' rs:basecolumn='varname'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='50' rs:fixedlength='true' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='hex' rs:number='2' rs:writeunknown='true' rs:basecolumn='hex'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='10' rs:fixedlength='true' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='class' rs:number='3' rs:writeunknown='true' rs:basecolumn='class'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='50' rs:fixedlength='true' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='dec' rs:number='4' rs:writeunknown='true' rs:basecolumn='dec'>
                        <s:datatype dt:type='number' rs:dbtype='str' dt:maxLength='19' rs:scale='0' rs:precision='15' rs:fixedlength='true'
			 rs:maybenull='false'/>
		</s:AttributeType>
		<s:extends type='rs:rowbase'/>
	</s:ElementType>
</s:Schema>
<rs:data>
	<z:row varname='ES_LEFT                                           ' hex='0         ' class='Edit Control                                      '
		 dec='0'/>
	<z:row varname='ES_CENTER                                         ' hex='1         ' class='Edit Control                                      '
		 dec='1'/>
	<z:row varname='ES_RIGHT                                          ' hex='2         ' class='Edit Control                                      '
		 dec='2'/>
	<z:row varname='ES_MULTILINE                                      ' hex='4         ' class='Edit Control                                      '
		 dec='4'/>
	<z:row varname='ES_UPPERCASE                                      ' hex='8         ' class='Edit Control                                      '
		 dec='8'/>
	<z:row varname='ES_LOWERCASE                                      ' hex='10        ' class='Edit Control                                      '
		 dec='16'/>
	<z:row varname='ES_PASSWORD                                       ' hex='20        ' class='Edit Control                                      '
		 dec='32'/>
	<z:row varname='ES_AUTOVSCROLL                                    ' hex='40        ' class='Edit Control                                      '
		 dec='64'/>
	<z:row varname='ES_AUTOHSCROLL                                    ' hex='80        ' class='Edit Control                                      '
		 dec='128'/>
	<z:row varname='ES_NOHIDESEL                                      ' hex='100       ' class='Edit Control                                      '
		 dec='256'/>
	<z:row varname='ES_OEMCONVERT                                     ' hex='400       ' class='Edit Control                                      '
		 dec='1024'/>
	<z:row varname='ES_READONLY                                       ' hex='800       ' class='Edit Control                                      '
		 dec='2048'/>
	<z:row varname='ES_WANTRETURN                                     ' hex='1000      ' class='Edit Control                                      '
		 dec='4096'/>
	<z:row varname='EN_SETFOCUS                                       ' hex='100       ' class='Edit Control                                      '
		 dec='256'/>
	<z:row varname='EN_KILLFOCUS                                      ' hex='200       ' class='Edit Control                                      '
		 dec='512'/>
	<z:row varname='EN_CHANGE                                         ' hex='300       ' class='Edit Control                                      '
		 dec='768'/>
	<z:row varname='EN_UPDATE                                         ' hex='400       ' class='Edit Control                                      '
		 dec='1024'/>
	<z:row varname='EN_ERRSPACE                                       ' hex='500       ' class='Edit Control                                      '
		 dec='1280'/>
	<z:row varname='EN_MAXTEXT                                        ' hex='501       ' class='Edit Control                                      '
		 dec='1281'/>
	<z:row varname='EN_HSCROLL                                        ' hex='601       ' class='Edit Control                                      '
		 dec='1537'/>
	<z:row varname='EN_VSCROLL                                        ' hex='602       ' class='Edit Control                                      '
		 dec='1538'/>
	<z:row varname='EM_GETSEL                                         ' hex='B0        ' class='Edit Control                                      '
		 dec='176'/>
	<z:row varname='EM_SETSEL                                         ' hex='B1        ' class='Edit Control                                      '
		 dec='177'/>
	<z:row varname='EM_GETRECT                                        ' hex='B2        ' class='Edit Control                                      '
		 dec='178'/>
	<z:row varname='EM_SETRECT                                        ' hex='B3        ' class='Edit Control                                      '
		 dec='179'/>
	<z:row varname='EM_SETRECTNP                                      ' hex='B4        ' class='Edit Control                                      '
		 dec='180'/>
	<z:row varname='EM_SCROLL                                         ' hex='B5        ' class='Edit Control                                      '
		 dec='181'/>
	<z:row varname='EM_LINESCROLL                                     ' hex='B6        ' class='Edit Control                                      '
		 dec='182'/>
	<z:row varname='EM_SCROLLCARET                                    ' hex='B7        ' class='Edit Control                                      '
		 dec='183'/>
	<z:row varname='EM_GETMODIFY                                      ' hex='B8        ' class='Edit Control                                      '
		 dec='184'/>
	<z:row varname='EM_SETMODIFY                                      ' hex='B9        ' class='Edit Control                                      '
		 dec='185'/>
	<z:row varname='EM_GETLINECOUNT                                   ' hex='BA        ' class='Edit Control                                      '
		 dec='186'/>
	<z:row varname='EM_LINEINDEX                                      ' hex='BB        ' class='Edit Control                                      '
		 dec='187'/>
	<z:row varname='EM_SETHANDLE                                      ' hex='BC        ' class='Edit Control                                      '
		 dec='188'/>
	<z:row varname='EM_GETHANDLE                                      ' hex='BD        ' class='Edit Control                                      '
		 dec='189'/>
	<z:row varname='EM_GETTHUMB                                       ' hex='BE        ' class='Edit Control                                      '
		 dec='190'/>
	<z:row varname='EM_LINELENGTH                                     ' hex='C1        ' class='Edit Control                                      '
		 dec='193'/>
	<z:row varname='EM_REPLACESEL                                     ' hex='C2        ' class='Edit Control                                      '
		 dec='194'/>
	<z:row varname='EM_GETLINE                                        ' hex='C4        ' class='Edit Control                                      '
		 dec='196'/>
	<z:row varname='EM_LIMITTEXT                                      ' hex='C5        ' class='Edit Control                                      '
		 dec='197'/>
	<z:row varname='EM_CANUNDO                                        ' hex='C6        ' class='Edit Control                                      '
		 dec='198'/>
	<z:row varname='EM_UNDO                                           ' hex='C7        ' class='Edit Control                                      '
		 dec='199'/>
	<z:row varname='EM_FMTLINES                                       ' hex='C8        ' class='Edit Control                                      '
		 dec='200'/>
	<z:row varname='EM_LINEFROMCHAR                                   ' hex='C9        ' class='Edit Control                                      '
		 dec='201'/>
	<z:row varname='EM_SETTABSTOPS                                    ' hex='CB        ' class='Edit Control                                      '
		 dec='203'/>
	<z:row varname='EM_SETPASSWORDCHAR                                ' hex='CC        ' class='Edit Control                                      '
		 dec='204'/>
	<z:row varname='EM_EMPTYUNDOBUFFER                                ' hex='CD        ' class='Edit Control                                      '
		 dec='205'/>
	<z:row varname='EM_GETFIRSTVISIBLELINE                            ' hex='CE        ' class='Edit Control                                      '
		 dec='206'/>
	<z:row varname='EM_SETREADONLY                                    ' hex='CF        ' class='Edit Control                                      '
		 dec='207'/>
	<z:row varname='EM_SETWORDBREAKPROC                               ' hex='D0        ' class='Edit Control                                      '
		 dec='208'/>
	<z:row varname='EM_GETWORDBREAKPROC                               ' hex='D1        ' class='Edit Control                                      '
		 dec='209'/>
	<z:row varname='EM_GETPASSWORDCHAR                                ' hex='D2        ' class='Edit Control                                      '
		 dec='210'/>
	<z:row varname='BS_PUSHBUTTON                                     ' hex='0         ' class='Button Control                                    '
		 dec='0'/>
	<z:row varname='BS_DEFPUSHBUTTON                                  ' hex='1         ' class='Button Control                                    '
		 dec='1'/>
	<z:row varname='BS_CHECKBOX                                       ' hex='2         ' class='Button Control                                    '
		 dec='2'/>
	<z:row varname='BS_AUTOCHECKBOX                                   ' hex='3         ' class='Button Control                                    '
		 dec='3'/>
	<z:row varname='BS_RADIOBUTTON                                    ' hex='4         ' class='Button Control                                    '
		 dec='4'/>
	<z:row varname='BS_3STATE                                         ' hex='5         ' class='Button Control                                    '
		 dec='5'/>
	<z:row varname='BS_AUTO3STATE                                     ' hex='6         ' class='Button Control                                    '
		 dec='6'/>
	<z:row varname='BS_GROUPBOX                                       ' hex='7         ' class='Button Control                                    '
		 dec='7'/>
	<z:row varname='BS_USERBUTTON                                     ' hex='8         ' class='Button Control                                    '
		 dec='8'/>
	<z:row varname='BS_AUTORADIOBUTTON                                ' hex='9         ' class='Button Control                                    '
		 dec='9'/>
	<z:row varname='BS_OWNERDRAW                                      ' hex='B         ' class='Button Control                                    '
		 dec='11'/>
	<z:row varname='BS_LEFTTEXT                                       ' hex='20        ' class='Button Control                                    '
		 dec='32'/>
	<z:row varname='BN_CLICKED                                        ' hex='0         ' class='Button Control                                    '
		 dec='0'/>
	<z:row varname='BN_PAINT                                          ' hex='1         ' class='Button Control                                    '
		 dec='1'/>
	<z:row varname='BN_HILITE                                         ' hex='2         ' class='Button Control                                    '
		 dec='2'/>
	<z:row varname='BN_UNHILITE                                       ' hex='3         ' class='Button Control                                    '
		 dec='3'/>
	<z:row varname='BN_DISABLE                                        ' hex='4         ' class='Button Control                                    '
		 dec='4'/>
	<z:row varname='BN_DOUBLECLICKED                                  ' hex='5         ' class='Button Control                                    '
		 dec='5'/>
	<z:row varname='BM_GETCHECK                                       ' hex='F0        ' class='Button Control                                    '
		 dec='240'/>
	<z:row varname='BM_SETCHECK                                       ' hex='F1        ' class='Button Control                                    '
		 dec='241'/>
	<z:row varname='BM_GETSTATE                                       ' hex='F2        ' class='Button Control                                    '
		 dec='242'/>
	<z:row varname='BM_SETSTATE                                       ' hex='F3        ' class='Button Control                                    '
		 dec='243'/>
	<z:row varname='BM_SETSTYLE                                       ' hex='F4        ' class='Button Control                                    '
		 dec='244'/>
	<z:row varname='LB_ADDSTRING                                      ' hex='180       ' class='List Box Control                                  '
		 dec='384'/>
	<z:row varname='LB_INSERTSTRING                                   ' hex='181       ' class='List Box Control                                  '
		 dec='385'/>
	<z:row varname='LB_DELETESTRING                                   ' hex='182       ' class='List Box Control                                  '
		 dec='386'/>
	<z:row varname='LB_SELITEMRANGEEX                                 ' hex='183       ' class='List Box Control                                  '
		 dec='387'/>
	<z:row varname='LB_RESETCONTENT                                   ' hex='184       ' class='List Box Control                                  '
		 dec='388'/>
	<z:row varname='LB_SETSEL                                         ' hex='185       ' class='List Box Control                                  '
		 dec='389'/>
	<z:row varname='LB_SETCURSEL                                      ' hex='186       ' class='List Box Control                                  '
		 dec='390'/>
	<z:row varname='LB_GETSEL                                         ' hex='187       ' class='List Box Control                                  '
		 dec='391'/>
	<z:row varname='LB_GETCURSEL                                      ' hex='188       ' class='List Box Control                                  '
		 dec='392'/>
	<z:row varname='LB_GETTEXT                                        ' hex='189       ' class='List Box Control                                  '
		 dec='393'/>
	<z:row varname='LB_GETTEXTLEN                                     ' hex='18A       ' class='List Box Control                                  '
		 dec='394'/>
	<z:row varname='LB_GETCOUNT                                       ' hex='18B       ' class='List Box Control                                  '
		 dec='395'/>
	<z:row varname='LB_SELECTSTRING                                   ' hex='18C       ' class='List Box Control                                  '
		 dec='396'/>
	<z:row varname='LB_DIR                                            ' hex='18D       ' class='List Box Control                                  '
		 dec='397'/>
	<z:row varname='LB_GETTOPINDEX                                    ' hex='18E       ' class='List Box Control                                  '
		 dec='398'/>
	<z:row varname='LB_FINDSTRING                                     ' hex='18F       ' class='List Box Control                                  '
		 dec='399'/>
	<z:row varname='LB_GETSELCOUNT                                    ' hex='190       ' class='List Box Control                                  '
		 dec='400'/>
	<z:row varname='LB_GETSELITEMS                                    ' hex='191       ' class='List Box Control                                  '
		 dec='401'/>
	<z:row varname='LB_SETTABSTOPS                                    ' hex='192       ' class='List Box Control                                  '
		 dec='402'/>
	<z:row varname='LB_GETHORIZONTALEXTENT                            ' hex='193       ' class='List Box Control                                  '
		 dec='403'/>
	<z:row varname='LB_SETHORIZONTALEXTENT                            ' hex='194       ' class='List Box Control                                  '
		 dec='404'/>
	<z:row varname='LB_SETCOLUMNWIDTH                                 ' hex='195       ' class='List Box Control                                  '
		 dec='405'/>
	<z:row varname='LB_ADDFILE                                        ' hex='196       ' class='List Box Control                                  '
		 dec='406'/>
	<z:row varname='LB_SETTOPINDEX                                    ' hex='197       ' class='List Box Control                                  '
		 dec='407'/>
	<z:row varname='LB_GETITEMRECT                                    ' hex='198       ' class='List Box Control                                  '
		 dec='408'/>
	<z:row varname='LB_GETITEMDATA                                    ' hex='199       ' class='List Box Control                                  '
		 dec='409'/>
	<z:row varname='LB_SETITEMDATA                                    ' hex='19A       ' class='List Box Control                                  '
		 dec='410'/>
	<z:row varname='LB_SELITEMRANGE                                   ' hex='19B       ' class='List Box Control                                  '
		 dec='411'/>
	<z:row varname='LB_SETANCHORINDEX                                 ' hex='19C       ' class='List Box Control                                  '
		 dec='412'/>
	<z:row varname='LB_GETANCHORINDEX                                 ' hex='19D       ' class='List Box Control                                  '
		 dec='413'/>
	<z:row varname='LB_SETCARETINDEX                                  ' hex='19E       ' class='List Box Control                                  '
		 dec='414'/>
	<z:row varname='LB_GETCARETINDEX                                  ' hex='19F       ' class='List Box Control                                  '
		 dec='415'/>
	<z:row varname='LB_SETITEMHEIGHT                                  ' hex='1A0       ' class='List Box Control                                  '
		 dec='416'/>
	<z:row varname='LB_GETITEMHEIGHT                                  ' hex='1A1       ' class='List Box Control                                  '
		 dec='417'/>
	<z:row varname='LB_FINDSTRINGEXACT                                ' hex='1A2       ' class='List Box Control                                  '
		 dec='418'/>
	<z:row varname='LB_SETLOCALE                                      ' hex='1A5       ' class='List Box Control                                  '
		 dec='421'/>
	<z:row varname='LB_GETLOCALE                                      ' hex='1A6       ' class='List Box Control                                  '
		 dec='422'/>
	<z:row varname='LB_SETCOUNT                                       ' hex='1A7       ' class='List Box Control                                  '
		 dec='423'/>
	<z:row varname='LB_MSGMAX                                         ' hex='1A8       ' class='List Box Control                                  '
		 dec='424'/>
	<z:row varname='LBS_NOTIFY                                        ' hex='1         ' class='List Box Control                                  '
		 dec='1'/>
	<z:row varname='LBS_SORT                                          ' hex='2         ' class='List Box Control                                  '
		 dec='2'/>
	<z:row varname='LBS_NOREDRAW                                      ' hex='4         ' class='List Box Control                                  '
		 dec='4'/>
	<z:row varname='LBS_MULTIPLESEL                                   ' hex='8         ' class='List Box Control                                  '
		 dec='8'/>
	<z:row varname='LBS_OWNERDRAWFIXED                                ' hex='10        ' class='List Box Control                                  '
		 dec='16'/>
	<z:row varname='LBS_OWNERDRAWVARIABLE                             ' hex='20        ' class='List Box Control                                  '
		 dec='32'/>
	<z:row varname='LBS_HASSTRINGS                                    ' hex='40        ' class='List Box Control                                  '
		 dec='64'/>
	<z:row varname='LBS_USETABSTOPS                                   ' hex='80        ' class='List Box Control                                  '
		 dec='128'/>
	<z:row varname='LBS_NOINTEGRALHEIGHT                              ' hex='100       ' class='List Box Control                                  '
		 dec='256'/>
	<z:row varname='LBS_MULTICOLUMN                                   ' hex='200       ' class='List Box Control                                  '
		 dec='512'/>
	<z:row varname='LBS_WANTKEYBOARDINPUT                             ' hex='400       ' class='List Box Control                                  '
		 dec='1024'/>
	<z:row varname='LBS_EXTENDEDSEL                                   ' hex='800       ' class='List Box Control                                  '
		 dec='2048'/>
	<z:row varname='LBS_DISABLENOSCROLL                               ' hex='1000      ' class='List Box Control                                  '
		 dec='4096'/>
	<z:row varname='LBS_NODATA                                        ' hex='2000      ' class='List Box Control                                  '
		 dec='8192'/>
	<z:row varname='CBN_ERRSPACE                                      ' hex='-1        ' class='Combo Box Control                                 '
		 dec='-1'/>
	<z:row varname='CBN_SELCHANGE                                     ' hex='1         ' class='Combo Box Control                                 '
		 dec='1'/>
	<z:row varname='CBN_DBLCLK                                        ' hex='2         ' class='Combo Box Control                                 '
		 dec='2'/>
	<z:row varname='CBN_SETFOCUS                                      ' hex='3         ' class='Combo Box Control                                 '
		 dec='3'/>
	<z:row varname='CBN_KILLFOCUS                                     ' hex='4         ' class='Combo Box Control                                 '
		 dec='4'/>
	<z:row varname='CBN_EDITCHANGE                                    ' hex='5         ' class='Combo Box Control                                 '
		 dec='5'/>
	<z:row varname='CBN_EDITUPDATE                                    ' hex='6         ' class='Combo Box Control                                 '
		 dec='6'/>
	<z:row varname='CBN_DROPDOWN                                      ' hex='7         ' class='Combo Box Control                                 '
		 dec='7'/>
	<z:row varname='CBN_CLOSEUP                                       ' hex='8         ' class='Combo Box Control                                 '
		 dec='8'/>
	<z:row varname='CBN_SELENDOK                                      ' hex='9         ' class='Combo Box Control                                 '
		 dec='9'/>
	<z:row varname='CBN_SELENDCANCEL                                  ' hex='10        ' class='Combo Box Control                                 '
		 dec='16'/>
	<z:row varname='CBS_SIMPLE                                        ' hex='1         ' class='Combo Box Control                                 '
		 dec='1'/>
	<z:row varname='CBS_DROPDOWN                                      ' hex='2         ' class='Combo Box Control                                 '
		 dec='2'/>
	<z:row varname='CBS_DROPDOWNLIST                                  ' hex='3         ' class='Combo Box Control                                 '
		 dec='3'/>
	<z:row varname='CBS_OWNERDRAWFIXED                                ' hex='10        ' class='Combo Box Control                                 '
		 dec='16'/>
	<z:row varname='CBS_OWNERDRAWVARIABLE                             ' hex='20        ' class='Combo Box Control                                 '
		 dec='32'/>
	<z:row varname='CBS_AUTOHSCROLL                                   ' hex='40        ' class='Combo Box Control                                 '
		 dec='64'/>
	<z:row varname='CBS_OEMCONVERT                                    ' hex='80        ' class='Combo Box Control                                 '
		 dec='128'/>
	<z:row varname='CBS_SORT                                          ' hex='100       ' class='Combo Box Control                                 '
		 dec='256'/>
	<z:row varname='CBS_HASSTRINGS                                    ' hex='200       ' class='Combo Box Control                                 '
		 dec='512'/>
	<z:row varname='CBS_NOINTEGRALHEIGHT                              ' hex='400       ' class='Combo Box Control                                 '
		 dec='1024'/>
	<z:row varname='CBS_DISABLENOSCROLL                               ' hex='800       ' class='Combo Box Control                                 '
		 dec='2048'/>
	<z:row varname='CB_GETEDITSEL                                     ' hex='140       ' class='Combo Box Control                                 '
		 dec='320'/>
	<z:row varname='CB_LIMITTEXT                                      ' hex='141       ' class='Combo Box Control                                 '
		 dec='321'/>
	<z:row varname='CB_SETEDITSEL                                     ' hex='142       ' class='Combo Box Control                                 '
		 dec='322'/>
	<z:row varname='CB_ADDSTRING                                      ' hex='143       ' class='Combo Box Control                                 '
		 dec='323'/>
	<z:row varname='CB_DELETESTRING                                   ' hex='144       ' class='Combo Box Control                                 '
		 dec='324'/>
	<z:row varname='CB_DIR                                            ' hex='145       ' class='Combo Box Control                                 '
		 dec='325'/>
	<z:row varname='CB_GETCOUNT                                       ' hex='146       ' class='Combo Box Control                                 '
		 dec='326'/>
	<z:row varname='CB_GETCURSEL                                      ' hex='147       ' class='Combo Box Control                                 '
		 dec='327'/>
	<z:row varname='CB_GETLBTEXT                                      ' hex='148       ' class='Combo Box Control                                 '
		 dec='328'/>
	<z:row varname='CB_GETLBTEXTLEN                                   ' hex='149       ' class='Combo Box Control                                 '
		 dec='329'/>
	<z:row varname='CB_INSERTSTRING                                   ' hex='14A       ' class='Combo Box Control                                 '
		 dec='330'/>
	<z:row varname='CB_RESETCONTENT                                   ' hex='14B       ' class='Combo Box Control                                 '
		 dec='331'/>
	<z:row varname='CB_FINDSTRING                                     ' hex='14C       ' class='Combo Box Control                                 '
		 dec='332'/>
	<z:row varname='CB_SELECTSTRING                                   ' hex='14D       ' class='Combo Box Control                                 '
		 dec='333'/>
	<z:row varname='CB_SETCURSEL                                      ' hex='14E       ' class='Combo Box Control                                 '
		 dec='334'/>
	<z:row varname='CB_SHOWDROPDOWN                                   ' hex='14F       ' class='Combo Box Control                                 '
		 dec='335'/>
	<z:row varname='CB_GETITEMDATA                                    ' hex='150       ' class='Combo Box Control                                 '
		 dec='336'/>
	<z:row varname='CB_SETITEMDATA                                    ' hex='151       ' class='Combo Box Control                                 '
		 dec='337'/>
	<z:row varname='CB_GETDROPPEDCONTROLRECT                          ' hex='152       ' class='Combo Box Control                                 '
		 dec='338'/>
	<z:row varname='CB_SETITEMHEIGHT                                  ' hex='153       ' class='Combo Box Control                                 '
		 dec='339'/>
	<z:row varname='CB_GETITEMHEIGHT                                  ' hex='154       ' class='Combo Box Control                                 '
		 dec='340'/>
	<z:row varname='CB_SETEXTENDEDUI                                  ' hex='155       ' class='Combo Box Control                                 '
		 dec='341'/>
	<z:row varname='CB_GETEXTENDEDUI                                  ' hex='156       ' class='Combo Box Control                                 '
		 dec='342'/>
	<z:row varname='CB_GETDROPPEDSTATE                                ' hex='157       ' class='Combo Box Control                                 '
		 dec='343'/>
	<z:row varname='CB_FINDSTRINGEXACT                                ' hex='158       ' class='Combo Box Control                                 '
		 dec='344'/>
	<z:row varname='CB_SETLOCALE                                      ' hex='159       ' class='Combo Box Control                                 '
		 dec='345'/>
	<z:row varname='CB_GETLOCALE                                      ' hex='15A       ' class='Combo Box Control                                 '
		 dec='346'/>
	<z:row varname='CB_MSGMAX                                         ' hex='15B       ' class='Combo Box Control                                 '
		 dec='347'/>
	<z:row varname='PBM_SETRANGE                                      ' hex='1025      ' class='Progress Bar Control                              '
		 dec='4133'/>
	<z:row varname='PBM_SETPOS                                        ' hex='1026      ' class='Progress Bar Control                              '
		 dec='4134'/>
	<z:row varname='PBM_DELTAPOS                                      ' hex='1027      ' class='Progress Bar Control                              '
		 dec='4135'/>
	<z:row varname='PBM_SETSTEP                                       ' hex='1028      ' class='Progress Bar Control                              '
		 dec='4136'/>
	<z:row varname='PBM_STEPIT                                        ' hex='1029      ' class='Progress Bar Control                              '
		 dec='4137'/>
	<z:row varname='PBM_SETRANGE32                                    ' hex='1030      ' class='Progress Bar Control                              '
		 dec='4144'/>
	<z:row varname='PBM_SETBARCOLOR                                   ' hex='1033      ' class='Progress Bar Control                              '
		 dec='4147'/>
	<z:row varname='PBM_SETBKCOLOR                                    ' hex='8193      ' class='Progress Bar Control                              '
		 dec='33171'/>
</rs:data>


Article ID:   W14831
File Created: 2017:08:29:11:48:28
Last Updated: 2017:08:29:11:48:28