Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
Keywords: Date Time Picker DateTimePicker SysDateTimePick32 InitCommonControlsEx DTS_TIMEFORMAT
;*************************************************************************** ;** DateTimePickers in a WIL Dialog ;** ;** Purpose: Add DateTimePicker Controls to WIL Dialog ;** ;** Developer: Deana Falk 2014.03.06 ;*************************************************************************** GlobalDateTime = '' GlobalDate = '' Gosub UDFS MyDialogFormat=`WWWDLGED,6.2` MyDialogCaption=`Status Bar` MyDialogX=-01 MyDialogY=-01 MyDialogWidth=300 MyDialogHeight=149 MyDialogNumControls=002 MyDialogProcedure=`MyDialogCallbackProc` MyDialogFont=`DEFAULT` MyDialogTextColor=`DEFAULT` MyDialogBackground=`DEFAULT,DEFAULT` MyDialogConfig=0 MyDialog001=`009,111,036,012,PUSHBUTTON,"PushButton_OK",DEFAULT,"OK",1,1,DEFAULT,DEFAULT,DEFAULT,DEFAULT` MyDialog002=`071,111,036,012,PUSHBUTTON,"PushButton_Cancel",DEFAULT,"Cancel",0,2,DEFAULT,DEFAULT,DEFAULT,DEFAULT` ButtonPushed=Dialog("MyDialog") Pause('DateTime Chosen by User', GlobalDate:":":GlobalTime) Exit :UDFS #Definefunction InitCommonControls(class) ComCtl32 = DirWindows(1):"ComCtl32.dll" COMMONCONTROLSEX=BinaryAlloc(8) ;Create buffer for CommonControlsEX buffer BinaryPoke4 (COMMONCONTROLSEX,0,8) BinaryPoke4 (COMMONCONTROLSEX,4,class) ICC=DllCall (ComCtl32,long:"InitCommonControlsEx",lpbinary:COMMONCONTROLSEX) BinaryFree (COMMONCONTROLSEX) ;Free CommonControlsEX buffer Return #Endfunction #Definefunction DateTimeCreate(style,handle,startx,starty,width,height) user32 = DirWindows(1):"user32.dll" ;DateTime styles DTS_UPDOWN = 1 ; Provides an up-down control to the right of the control to modify date-time values, which replaces the of the drop-down month calendar that would otherwise be available. DTS_SHOWNONE = 2 ; Displays a checkbox inside the control that users can uncheck to make the control have no date/time selected. Whenever the control has no date/time, Gui Submit and GuiControlGet will retrieve a blank value (empty string). DTS_SHORTDATEFORMAT = 0 ; Displays the date in short format. In some locales, it looks like 6/1/05 or 6/1/2005. On older operating systems, a two-digit year might be displayed. This is why DTS_SHORTDATECENTURYFORMAT is the default and not DTS_SHORTDATEFORMAT. DTS_LONGDATEFORMAT = 4 ; Format option "LongDate". Displays the date in long format. In some locales, it looks like Wednesday, June 01, 2005. DTS_SHORTDATECENTURYFORMAT = 12 ; Format option blank/omitted. Displays the date in short format with four-digit year. In some locales, it looks like 6/1/2005. If the system's version of Comctl32.dll is older than 5.8, this style is not supported and DTS_SHORTDATEFORMAT is automatically substituted. DTS_TIMEFORMAT = 9 ; Format option "Time". Displays only the time, which in some locales looks like 5:31:42 PM. DTS_APPCANPARSE = 16 ; Not yet supported. Allows the owner to parse user input and take necessary action. It enables users to edit within the client area of the control when they press the F2 key. The control sends DTN_USERSTRING notification messages when users are finished. DTS_RIGHTALIGN = 32 ; +/-Right. The calendar will drop down on the right side of the control instead of the left. WS_BORDER = 8388608 WS_CHILD = 1073741824 WS_VISIBLE = 268435456 ; Handle to dialog hinst = dllhinst("") Return dllcall(user32,long:"CreateWindowExA",long:512,lpstr:"SysDateTimePick32",lpstr:"DateTime",long:WS_BORDER|WS_CHILD|WS_VISIBLE|DTS_TIMEFORMAT|style,long:startx,long:starty,long:width,long:height,long:handle,long:0,long:hinst,long:0) #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 MSG_RVITEMSELROW=18 ; Reportview item select row MSG_RVDBLCLICKROW=19 ; Reportview double-click row MSG_RVCHECKEDITEM=20 ; Reportview checked/unchecked Item MSG_RVITEMTEXT=21 ; Reportview changed text of first column MSG_RVHEADER=22 ; Reportview header clicked 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 DCSTYLE_NOHEADER=524288 ; No header bar REPORTVIEW DCSTYLE_COLHEADER=1048576 ; First row column header REPORTVIEW DCSTYLE_GRIDLINES=2097152 ; Grid lines REPORTVIEW DCSTYLE_SELONEROW=4194304 ; Only one row can be selected at a time REPORTVIEW DCSTYLE_SELALLROW = 8388608 ; Highlight complete row REPORTVIEW DCSTYLE_SORTASC=16777216 ; Ascending sort REPORTVIEW DCSTYLE_SORTDESC=33554432 ; Descending sort REPORTVIEW DCSTYLE_EDITCOL=67108864 ; Edit first columns text REPORTVIEW DCSTYLE_COLCHECKBOX=134217728 ; Add checkbox to first column REPORTVIEW DCSTYLE_INSHEADER=268435456 ; Include column header text REPORTVIEW ;DialogControlSet / DialogControlGet Constants DC_CHECKBOX=1 ; CHECKBOX REPORTVIEW 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 REPORTVIEW DC_ITEMBOXSELECT=6 ; ITEMBOX FILELISTBOX DROPLISTBOX REPORTVIEW 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 REPORTVIEW DC_PICTUREBITMAP=12 ; PICTURE PICTUREBUTTON DC_TEXTCOLOR=13 ; RADIOBUTTON CHECKBOX VARYTEXT STATICTEXT GROUPBOX PUSHBUTTON ITEMBOX FILELISTBOX DROPLISTBOX SPINNER EDITBOX MULTILINEBOX REPORTVIEW DC_ITEMBOXADD=14 ; ITEMBOX FILELISTBOX DROPLISTBOX REPORTVIEW DC_ITEMBOXREMOVE=15 ; ITEMBOX FILELISTBOX DROPLISTBOX REPORTVIEW 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) DC_RVCOLHEAD=20 ; REPORTVIEW DC_RVCOLWIDTH=21 ; REPORTVIEW DC_RVADDCOL=22 ; REPORTVIEW DC_RVREMOVECOL=23 ; REPORTVIEW DC_RVMATCHCOL=24 ; REPORTVIEW DC_RVCANCELEDIT=25 ; REPORTVIEW DC_RVCHECKEDROWS=26 ; REPORTVIEW DC_RVJUSTIFY=27 ; REPORTVIEW ;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) ICC_DATE_CLASS = 256 InitCommonControls(ICC_DATE_CLASS) ; DTS_TIMEFORMAT ; Control Coordinates startx = 10 starty = 10 width = 250 height = 25 DTS_TIMEFORMAT = 9 DTPHandle1 = DateTimeCreate(DTS_TIMEFORMAT,MyDialog_Handle,startx,starty,width,height) ; DTS_LONGDATEFORMAT ; Control Coordinates startx = 10 starty = 40 width = 250 height = 25 DTS_LONGDATEFORMAT = 4 DTPHandle2 = DateTimeCreate(DTS_LONGDATEFORMAT,MyDialog_Handle,startx,starty,width,height) return(RET_DO_NOT_EXIT) case MSG_BUTTONPUSHED if MyDialog_Name == "PushButton_OK" ; OK ; Get Value of datetime control DTM_FIRST = 4096 DTM_GETSYSTEMTIME = DTM_FIRST + 1 SystemTime = BinaryAlloc(16) BinaryEodSet(SystemTime,16) DllCall(DirWindows(1):"user32.dll",long:"SendMessageA",long:DTPHandle1,long:DTM_GETSYSTEMTIME,long:0,lpbinary:SystemTime) year = BinaryPeek2(SystemTime,0) month = StrFixLeft(BinaryPeek2(SystemTime,2),0,2) day = StrFixLeft(BinaryPeek2(SystemTime,6),0,2) hour = StrFixLeft(BinaryPeek2(SystemTime,8),0,2) minute = StrFixLeft(BinaryPeek2(SystemTime,10),0,2) second = StrFixLeft(BinaryPeek2(SystemTime,12),0,2) GlobalTime = hour:':':minute:':':second BinaryEodSet(SystemTime,16) DllCall(DirWindows(1):"user32.dll",long:"SendMessageA",long:DTPHandle2,long:DTM_GETSYSTEMTIME,long:0,lpbinary:SystemTime) year = BinaryPeek2(SystemTime,0) month = StrFixLeft(BinaryPeek2(SystemTime,2),0,2) day = StrFixLeft(BinaryPeek2(SystemTime,6),0,2) hour = StrFixLeft(BinaryPeek2(SystemTime,8),0,2) minute = StrFixLeft(BinaryPeek2(SystemTime,10),0,2) second = StrFixLeft(BinaryPeek2(SystemTime,12),0,2) GlobalDate = year:':':month:':':day return(RET_DO_DEFAULT) elseif MyDialog_Name == "PushButton_Cancel" ; Cancel return(RET_DO_DEFAULT) endif ; MyDialog_Name return(RET_DO_CANCEL) endswitch ; MyDialog_Message return(RET_DO_DEFAULT) #EndSubroutine ; End of Dialog Callback MyDialogCallbackProc ;============================================================ ;============================================================ ;============================================================ RETURN
Article ID: W17738
Filename: Date and Time Picker Sample.txt
File Created: 2014:03:06:11:00:28
Last Updated: 2014:03:06:11:00:28