Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
Keywords: Marquee Style Progress Bar Not Supported
#DefineFunction SetupProgBar(DlgHandle) ;~~~~~CONSTANTS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HWND_TOPMOST = -1 ;Stay on top ICC_PROGRESS_CLASS = 32 ;-----WindowPosition-------------------------- SWP_NOSIZE = 1 ;Retains the current size (ignores the cx and cy parameters SWP_NOMOVE = 2 ;Retains the current position (ignores X and Y parameters) SWP_NOACTIVATE = 16 ;Does not activate the window ;-----Styles-------------------------- GWL_STYLE = -16 CW_USEDEFAULT = 0 PBS_MARQUEE = 8 BARTYPE = 3 ; horz SMOOTH = 1 VIS = 268435456 CHILD = 1073741824 ;flags = bartype | smooth | vis | child | PBS_MARQUEE flags = vis | child ;-----Messages-------------------------- WM_USER = 1024 PBM_SETPOS = WM_USER + 2 PBM_SETRANGE32 = WM_USER +6 PBM_SETBARCOLOR = WM_USER + 9 PBM_SETBKCOLOR = WM_USER + 7169 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ hInst=DllHinst("") ;Get instance handle of dialog window User32=StrCat(DirWindows(1),"User32.dll") ComCtl32=StrCat(DirWindows(1),"ComCtl32.dll") ;-----Initialize common controls-------------- COMMONCONTROLSEX=BinaryAlloc(8) ;Create buffer for CommonControlsEX buffer BinaryPoke4 (COMMONCONTROLSEX,0,8) BinaryPoke4 (COMMONCONTROLSEX,4,ICC_PROGRESS_CLASS) ICC=DllCall (ComCtl32,long:"InitCommonControlsEx",lpbinary:COMMONCONTROLSEX) BinaryFree (COMMONCONTROLSEX) ;Free CommonControlsEX buffer ;-----Create Progress bar----------------------- startx = 250 starty = 250 width = 600 height = 25 ;hProg=DllCall(User32,long:"CreateWindowExA",long:0,lpstr:"msctls_progress32",lpstr:"",long:flags,long:CW_USEDEFAULT,long:CW_USEDEFAULT,long:CW_USEDEFAULT,long:CW_USEDEFAULT,long:DlgHandle,long:0,long:hInst,long:0) hProg=DllCall(User32,long:"CreateWindowExA",long:0,lpstr:"msctls_progress32",lpstr:"",long:flags,long:startx,long:starty,long:width,long:height,long:DlgHandle,long:0,long:hinst,long:0) If !hProg Pause('Error','CreateWindowExA failed') Exit EndIf ; Add Marquee style to existing styles ( set PBS_MARQUEE style after creating Progress bar because of some articles found on the internet) OldStyle=DllCall(User32, long:"GetWindowLongA", long:hProg, long:GWL_STYLE) DllCall(User32,long:"SetWindowLongA",long:hProg,long:GWL_STYLE,long:OldStyle|PBS_MARQUEE) DllCall (User32,long:"SetWindowPos",long:hProg,long:HWND_TOPMOST,long:0,long:0,long:0,long:0,long:SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE) RetVal=DllCall(user32,long:"SendMessageA",long:hProg,long:PBM_SETPOS,long:1,long:100) RetVal=DllCall(user32,long:"SendMessageA",long:hProg,long:PBM_SETBKCOLOR,long:0,long:0) ;Black RetVal=DllCall(user32,long:"SendMessageA",long:hProg,long:PBM_SETBARCOLOR,long:0,long:32768) ;Green Return (hProg) #EndFunction #DefineFunction SetProgBar(hProg,setting) ;1 to turn on , 0 to turn off WM_USER = 1024 PBM_SETMARQUEE = WM_USER + 10 user32 = StrCat(DirWindows(1),"User32.dll") RetVal=DllCall(user32,long:"SendMessageA",long:hProg,long:PBM_SETMARQUEE,long:setting,long:30) Return (RetVal) #EndFunction ;========================================== #DefineSubRoutine InitDialogConstants() ;DialogprocOptions Constants MSG_INIT=0 ; The one-time initialization MSG_TIMER=1 ; Timer event MSG_BUTTONPUSHED=2 ; Pushbutton or Picturebutton MSG_RADIOPUSHED=3 ; Radiobutton clicked MSG_CHECKBOX=4 ; Checkbox clicked MSG_EDITBOX=5 ; Editbox or Multilinebox MSG_FILESELECT=6 ; Filelistbox MSG_ITEMSELECT=7 ; Itembox MSG_COMBOCHANGE=8 ; Combobox/Droplistbox MSG_CALENDAR=9 ; Calendar date change MSG_SPINNER=10 ; Spinner number change MSG_CLOSEVIA49=11 ; Close clicked (Enabled via DialogProcOptions 1002 MSG_FILEBOXDOUBLECLICK=12 ; Get double-click message on a FileListBox MSG_ITEMBOXDOUBLECLICK=13 ; Get double-click message on an ItemBox MSG_COMEVENT=14 ; COMCONTROL Event notification from DialogObject (NOT DialogProcOptions) MSG_MENUITEM=15 ; MenuItem selected MSG_MENUITEMINIT=16 ; MenuItem initialized MSG_RESIZE=17 ; Dialog resized DPO_DISABLESTATE=1000 ; codes -1=GetSetting 0=EnableDialog 1=DisableDialog DPO_CHANGEBACKGROUND=1001 ; -1=Get Current otherise bitmap or color string DPO_CHANGESYSMENU=1002 ; -1=Get Current 0=none 1=close 2=close/min 3=close/max 4=close/min/max DPO_CHANGETITLE=1003 ; Set/Get Dialog Title - (-1 to get) DPO_GETNAME=1004 ; Returns the name associated with a control's number. DPO_GETNUMBER=1005 ; Returns the number associated with a control's name. DPO_GETCLIENTAREA=1007 ; Returns a space delimited list of the width and height of the client area. ;DialogControlState Constants DCSTATE_SETFOCUS=1 ; Give Control Focus DCSTATE_QUERYSTYLE=2 ; Query control's style DCSTATE_ADDSTYLE=3 ; Add control style DCSTATE_REMOVESTYLE=4 ; Remove control style DCSTATE_GETFOCUS=5 ; Get control that has focus DCSTATE_MOVEMOUSEOVER=6 ; Move the mouse over the control DCSTYLE_DEFAULT=0 ; Set Default Style DCSTYLE_INVISIBLE=1 ; Set Control Invisible DCSTYLE_DISABLED=2 ; Set Control Disabled DCSTYLE_NOUSERDATA=4 ; Note: Setable via DialogControlState function ONLY SPINNER control only DCSTYLE_READONLY=8 ; Sets control to read-only (user cannot type in data) EDITBOX MULTILINEBOX SPINNER DCSTYLE_PASSWORD=16 ; Sets 'password mode' where only *'s are displayed EDITBOX DCSTYLE_DEFAULTBUTTON=32 ; Sets a button as the default button PUSHBUTTON PICTUREBUTTON DCSTYLE_DIGITSONLY=64 ; Set edit box to accept digits only EDITMOX MULTILINEBOX DCSTYLE_FLAT=128 ; Makes a 'flat' hyperlink-looking button PUSHBUTTON PICTUREBUTTON DCSTYLE_NOADJUST=256 ; Turns off auto-height adjustment ITEMBOX FILELISTBOX DCSTYLE_TEXTCENTER=512 ; Center text in control VARYTEXT STATICTEXT DCSTYLE_TEXTRIGHT=1024 ; Flush-Right text in control VARYTEXT STATICTEXT DCSTYLE_NOSELCURLEFT=2048 ; No selection, cursor left EDITBOX MULTILINEBOX DCSTYLE_NOSELCURRIGHT=4096; No selection, cursor right EDITBOX MULTILINEBOX DCSTYLE_SHIELD=8192 ; Display Security Shield icon on button (Vista only) PUSHBUTTON PICTUREBUTTON DCSTYLE_MENUCHECK=32768 ; Adds a check mark to the left of a menu item MENUITEM DCSTYLE_MENURADIO=65536 ; Adds a radio button like dot graphic to the left of a menu item MENUITEM DCSTYLE_MENUSEP=131072 ; Separator bar graphic MENUITEM DCSTYLE_MENUBREAK=262144 ; column break MENUBAR ;DialogControlSet / DialogControlGet Constants DC_CHECKBOX=1 ; CHECKBOX DC_RADIOBUTTON=2 ; RADIOBUTTON DC_EDITBOX=3 ; EDITBOX MULTILINEBOX DC_TITLE=4 ; PICTURE RADIOBUTTON CHECKBOX PICTUREBUTTON VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON MENUITEM DC_ITEMBOXCONTENTS=5 ; ITEMBOX FILELISTBOX DROPLISTBOX DC_ITEMBOXSELECT=6 ; ITEMBOX FILELISTBOX DROPLISTBOX DC_CALENDAR=7 ; CALENDAR DC_SPINNER=8 ; SPINNER DC_MULTITABSTOPS=9 ; MULTILINEBOX DC_ITEMSCROLLPOS=10 ; ITEMBOX FILELISTBOX DC_BACKGROUNDCOLOR=11 ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FILELISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX DC_PICTUREBITMAP=12 ; PICTURE PICTUREBUTTON DC_TEXTCOLOR=13 ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FIELLISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX DC_ITEMBOXADD=14 ; ITEMBOX FILELISTBOX DROPLISTBOX DC_ITEMBOXREMOVE=15 ; ITEMBOX FILELISTBOX DROPLISTBOX DC_RADIOVALUE=16 ; RADIOBUTTON DC_POSITION=17 ; ALL CONTROLS (Except MENUBAR and MENUITEM) DC_MENUNAMES=18 ; ALL CONTROLS DC_HANDLE=19 ; ALL CONTROLS (Except MENUBAR and MENUITEM) ;DialogObject constants DLGOBJECT_ADDEVENT=1 ; Call dialog callback when the specified event occurs DLGOBJECT_STOPEVENT=2 ; Stop calling dialog callback when an event previously requested with DLGOBJECT_GETOBJECT=3 ; Return an object references to the specified control DLGOBJECT_GETPICTURE=4 ; Create and return an object reference to a picture object ;Return code constants RET_DO_CANCEL=0 ; Cancels dialog RET_DO_DEFAULT= -1 ; Continue with default processing for control RET_DO_NOT_EXIT= -2 ; Do not exit the dialog Return #EndSubRoutine ;============================================================ ;============================================================ ;============================================================ #DefineSubRoutine MyDialogCallbackProc(MyDialog_Handle,MyDialog_Message,MyDialog_Name,MyDialog_EventInfo,MyDialog_ChangeInfo) InitDialogConstants() ; Initialize Dialog Constants ON_EQUAL = @TRUE ; Initialize variable ON_EQUAL Switch MyDialog_Message ; Switch based on Dialog Message type Case MSG_INIT ; Standard Initialization message DialogProcOptions(MyDialog_Handle,MSG_BUTTONPUSHED,@TRUE) DialogProcOptions(MyDialog_Handle,MSG_TIMER,100) hProg = SetupProgBar(MyDialog_Handle) SetProgBar(hProg, 1) ; Start marquee bar (FAILS here) DialogProcOptions( MyDialog_Handle, 1000, 1 ) RET_DO_NOT_EXIT Return(RET_DO_DEFAULT) Case MSG_TIMER ;SetProgBar(hProg, 1) ; Start marquee bar (FAILS here) Return(RET_DO_NOT_EXIT) Case MSG_BUTTONPUSHED If MyDialog_Name == "PushButton_Start" ; Start SetProgBar(hProg, 1) ; Start marquee bar (FAILS here) Return(RET_DO_NOT_EXIT) ElseIf MyDialog_Name == "PushButton_Cancel" ; Cancel Return(RET_DO_DEFAULT) EndIf ; MyDialog_Name Return(RET_DO_DEFAULT) EndSwitch ; MyDialog_Message Return(RET_DO_DEFAULT) #EndFunction ; End of Dialog Callback MyDialogCallbackProc ;============================================================ ;============================================================ ;============================================================ MyDialogFormat=`WWWDLGED,6.2` MyDialogCaption=`Marquess Style Progress Bar Problem` MyDialogX=157 MyDialogY=131 MyDialogWidth=566 MyDialogHeight=243 MyDialogMinWidth=100 MyDialogMinHeight=100 MyDialogNumControls=002 MyDialogProcedure=`MyDialogCallbackProc` MyDialogFont=`DEFAULT` MyDialogTextColor=`DEFAULT` MyDialogBackground=`DEFAULT,DEFAULT` MyDialogConfig=0 MyDialog001=`165,223,036,012,PUSHBUTTON,"PushButton_Start",DEFAULT,"Start",1,10,32,DEFAULT,DEFAULT,DEFAULT` MyDialog002=`365,223,036,012,PUSHBUTTON,"PushButton_Cancel",DEFAULT,"Cancel",0,20,DEFAULT,DEFAULT,DEFAULT,DEFAULT` ButtonPushed=Dialog("MyDialog") ;END SCRIPT Exit
Article ID: W17726
Filename: Marquee Style Progress Bars Not Supported.txt
File Created: 2012:05:21:11:19:52
Last Updated: 2012:05:21:11:19:52