I am trying to get 2 dates using PB datetime ddt sample program. But here date1 and date2 are the same. Can anyone help here?
'------------------------------------------------------------------------------
' Metastatements
'------------------------------------------------------------------------------
#COMPILER PBWIN 9
#COMPILE EXE
#DIM ALL
'------------------------------------------------------------------------------
' Include files
'------------------------------------------------------------------------------
%USEMACROS = 1
#INCLUDE "Win32API.inc"
#INCLUDE "CommCtrl.inc"
#INCLUDE "InitCtrl.inc"
'------------------------------------------------------------------------------
' Equates
'------------------------------------------------------------------------------
%IDC_LABEL = %WM_USER + 2110
%IDC_CALDATE1 = %WM_USER + 2150
%IDC_CALDATE2 = %WM_USER + 2170
''%IDC_CALTIME = %WM_USER + 2151
'------------------------------------------------------------------------------
' Main callback
'------------------------------------------------------------------------------
CALLBACK FUNCTION DlgProc () AS LONG
LOCAL pNMDTC AS NMDATETIMECHANGE PTR
LOCAL szDate1 AS ASCIIZ * 64
LOCAL szDate2 AS ASCIIZ * 64
'' LOCAL szTime AS ASCIIZ * 64
SELECT CASE CB.MSG
CASE %WM_COMMAND
' User selected CLOSE button
IF CB.CTL = %IDCANCEL THEN DIALOG END CB.HNDL
CASE %WM_NOTIFY 'Use this to detect changes in the calendar
' Set up the NMDATETIMECHANGE pointer passed in CB.LPARAM
pNMDTC = CB.LPARAM
IF @pNMDTC.hdr.code = %DTN_DATETIMECHANGE THEN 'Get selected date/time
' Here we use API messages to format a system local date/time text,
' but we can also use CONTROL GET TEXT to get the text directly, or
' format individual members of the @hdrX.st SYSTEMTIME structure directly.
GetDateFormat %LOCALE_USER_DEFAULT, %DATE_LONGDATE, _
@pNMDTC.st, BYVAL %NULL, szDate1, SIZEOF(szDate1)
GetDateFormat %LOCALE_USER_DEFAULT, %DATE_LONGDATE, _
@pNMDTC.st, BYVAL %NULL, szDate2, SIZEOF(szDate2)
' ? szDate1
' ? szDate2
'' GetTimeFormat %LOCALE_USER_DEFAULT, %TIME_FORCE24HOURFORMAT, _
'' @pNMDTC.st, BYVAL %NULL, szTime, SIZEOF(szTime)
CONTROL SET TEXT CB.HNDL, %IDC_LABEL, _
"Selected date1: " + szDate1 + $CR + "Selected date2: " + szDate2
END IF
CASE %WM_SYSCOLORCHANGE, %WM_WININICHANGE
' If user changes color scheme, forward the notification to the Ani control
CONTROL SEND CB.HNDL, %IDC_CALDATE1, CB.MSG, CB.WPARAM, CB.LPARAM
CONTROL SEND CB.HNDL, %IDC_CALDATE2, CB.MSG, CB.WPARAM, CB.LPARAM
END SELECT
END FUNCTION
'------------------------------------------------------------------------------
' Main entry point for the application
'------------------------------------------------------------------------------
FUNCTION PBMAIN () AS LONG
LOCAL hDlg AS DWORD
'---------------------------------------------------------------------------
' Note: SysMonthCal32 requires COMCTL32.DLL v4.70 (MSIE 3.0) or latter.
' Therefore, we must check the version number of COMCTL32, so we'll use the
' return value from the helper function InitComCtl32() for this.
'---------------------------------------------------------------------------
IF InitComCtl32(%ICC_DATE_CLASSES) < [email protected] THEN
MSGBOX "Sorry, this program needs a later version of COMCTL32.DLL." + $CRLF _
+ "Please install MSIE version 3 or higher, or get the file directly from: " + $CRLF _
+ $CRLF _
+ "http://www.microsoft.com/msdownload/ieplatform/ie/comctrlx86.asp", _
%MB_ICONWARNING OR %MB_SYSTEMMODAL, "SysMonthCal32 Error"
EXIT FUNCTION
END IF
'--------------------------------------------------------------------------
DIALOG NEW 0, "DateTime picker demo", 194, 109, 309, 70, %WS_CAPTION OR %WS_SYSMENU OR %WS_VISIBLE OR _
%DS_3DLOOK OR %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR OR _
%WS_EX_CONTROLPARENT, TO hDlg
CONTROL ADD LABEL, hDlg, %IDC_LABEL, "Select a date1 and/or date2.", 6, 30, 194, 20
CONTROL ADD BUTTON, hDlg, %IDCANCEL, "&Close", 150, 52, 50, 14
CONTROL ADD "SysDateTimePick32", hDlg, %IDC_CALDATE1, "", 5, 5, 134, 14, %WS_CHILD OR %WS_TABSTOP OR %WS_VISIBLE OR _
%DTS_LONGDATEFORMAT, %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR OR %WS_EX_CLIENTEDGE
CONTROL ADD "SysDateTimePick32", hDlg, %IDC_CALDATE2, "", 140,5, 134, 14, %WS_CHILD OR %WS_TABSTOP OR %WS_VISIBLE OR _
%DTS_LONGDATEFORMAT, %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR OR %WS_EX_CLIENTEDGE
' CONTROL ADD "SysDateTimePick32", hDlg, %IDC_CALTIME, "", 140, 5, 63, 14, %WS_CHILD OR %WS_TABSTOP OR %WS_VISIBLE OR _
' %DTS_UPDOWN OR %DTS_TIMEFORMAT, %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR OR %WS_EX_CLIENTEDGE
'--------------------------------------------------------------------------
DIALOG SHOW MODAL hDlg CALL DlgProc
END FUNCTION
Thanks,
HYC
'------------------------------------------------------------------------------
' Metastatements
'------------------------------------------------------------------------------
#COMPILER PBWIN 9
#COMPILE EXE
#DIM ALL
'------------------------------------------------------------------------------
' Include files
'------------------------------------------------------------------------------
%USEMACROS = 1
#INCLUDE "Win32API.inc"
#INCLUDE "CommCtrl.inc"
#INCLUDE "InitCtrl.inc"
'------------------------------------------------------------------------------
' Equates
'------------------------------------------------------------------------------
%IDC_LABEL = %WM_USER + 2110
%IDC_CALDATE1 = %WM_USER + 2150
%IDC_CALDATE2 = %WM_USER + 2170
''%IDC_CALTIME = %WM_USER + 2151
'------------------------------------------------------------------------------
' Main callback
'------------------------------------------------------------------------------
CALLBACK FUNCTION DlgProc () AS LONG
LOCAL pNMDTC AS NMDATETIMECHANGE PTR
LOCAL szDate1 AS ASCIIZ * 64
LOCAL szDate2 AS ASCIIZ * 64
'' LOCAL szTime AS ASCIIZ * 64
SELECT CASE CB.MSG
CASE %WM_COMMAND
' User selected CLOSE button
IF CB.CTL = %IDCANCEL THEN DIALOG END CB.HNDL
CASE %WM_NOTIFY 'Use this to detect changes in the calendar
' Set up the NMDATETIMECHANGE pointer passed in CB.LPARAM
pNMDTC = CB.LPARAM
IF @pNMDTC.hdr.code = %DTN_DATETIMECHANGE THEN 'Get selected date/time
' Here we use API messages to format a system local date/time text,
' but we can also use CONTROL GET TEXT to get the text directly, or
' format individual members of the @hdrX.st SYSTEMTIME structure directly.
GetDateFormat %LOCALE_USER_DEFAULT, %DATE_LONGDATE, _
@pNMDTC.st, BYVAL %NULL, szDate1, SIZEOF(szDate1)
GetDateFormat %LOCALE_USER_DEFAULT, %DATE_LONGDATE, _
@pNMDTC.st, BYVAL %NULL, szDate2, SIZEOF(szDate2)
' ? szDate1
' ? szDate2
'' GetTimeFormat %LOCALE_USER_DEFAULT, %TIME_FORCE24HOURFORMAT, _
'' @pNMDTC.st, BYVAL %NULL, szTime, SIZEOF(szTime)
CONTROL SET TEXT CB.HNDL, %IDC_LABEL, _
"Selected date1: " + szDate1 + $CR + "Selected date2: " + szDate2
END IF
CASE %WM_SYSCOLORCHANGE, %WM_WININICHANGE
' If user changes color scheme, forward the notification to the Ani control
CONTROL SEND CB.HNDL, %IDC_CALDATE1, CB.MSG, CB.WPARAM, CB.LPARAM
CONTROL SEND CB.HNDL, %IDC_CALDATE2, CB.MSG, CB.WPARAM, CB.LPARAM
END SELECT
END FUNCTION
'------------------------------------------------------------------------------
' Main entry point for the application
'------------------------------------------------------------------------------
FUNCTION PBMAIN () AS LONG
LOCAL hDlg AS DWORD
'---------------------------------------------------------------------------
' Note: SysMonthCal32 requires COMCTL32.DLL v4.70 (MSIE 3.0) or latter.
' Therefore, we must check the version number of COMCTL32, so we'll use the
' return value from the helper function InitComCtl32() for this.
'---------------------------------------------------------------------------
IF InitComCtl32(%ICC_DATE_CLASSES) < [email protected] THEN
MSGBOX "Sorry, this program needs a later version of COMCTL32.DLL." + $CRLF _
+ "Please install MSIE version 3 or higher, or get the file directly from: " + $CRLF _
+ $CRLF _
+ "http://www.microsoft.com/msdownload/ieplatform/ie/comctrlx86.asp", _
%MB_ICONWARNING OR %MB_SYSTEMMODAL, "SysMonthCal32 Error"
EXIT FUNCTION
END IF
'--------------------------------------------------------------------------
DIALOG NEW 0, "DateTime picker demo", 194, 109, 309, 70, %WS_CAPTION OR %WS_SYSMENU OR %WS_VISIBLE OR _
%DS_3DLOOK OR %DS_NOFAILCREATE OR %DS_SETFONT, %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR OR _
%WS_EX_CONTROLPARENT, TO hDlg
CONTROL ADD LABEL, hDlg, %IDC_LABEL, "Select a date1 and/or date2.", 6, 30, 194, 20
CONTROL ADD BUTTON, hDlg, %IDCANCEL, "&Close", 150, 52, 50, 14
CONTROL ADD "SysDateTimePick32", hDlg, %IDC_CALDATE1, "", 5, 5, 134, 14, %WS_CHILD OR %WS_TABSTOP OR %WS_VISIBLE OR _
%DTS_LONGDATEFORMAT, %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR OR %WS_EX_CLIENTEDGE
CONTROL ADD "SysDateTimePick32", hDlg, %IDC_CALDATE2, "", 140,5, 134, 14, %WS_CHILD OR %WS_TABSTOP OR %WS_VISIBLE OR _
%DTS_LONGDATEFORMAT, %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR OR %WS_EX_CLIENTEDGE
' CONTROL ADD "SysDateTimePick32", hDlg, %IDC_CALTIME, "", 140, 5, 63, 14, %WS_CHILD OR %WS_TABSTOP OR %WS_VISIBLE OR _
' %DTS_UPDOWN OR %DTS_TIMEFORMAT, %WS_EX_LEFT OR %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR OR %WS_EX_CLIENTEDGE
'--------------------------------------------------------------------------
DIALOG SHOW MODAL hDlg CALL DlgProc
END FUNCTION
HYC
Comment