2
是否可以更改DTPicker控件在「即時」星期的第一天使用的每週星期幾?更改DTPicker上的星期開始日期
我知道它使用系統的一週中的第一天(在控制面板中定義)進行此設置,但是可以更改爲使用另一天而不更改控制面板設置?
是否可以更改DTPicker控件在「即時」星期的第一天使用的每週星期幾?更改DTPicker上的星期開始日期
我知道它使用系統的一週中的第一天(在控制面板中定義)進行此設置,但是可以更改爲使用另一天而不更改控制面板設置?
通過拾音
試試這個,從post on the old VB6 newsgroup您可以使用Win32 API與DTPicker做到這一點。 DTPicker使用 實際的MonthView控件。您可以發送此控件一個MCM_SETFIRSTDAYOFWEEK message以更改一週的第一天。請注意,您必須(也只能)在DropDown事件中執行此 ,因爲在此之前,MonthView控件 不存在。 MonthView在CloseUp事件後被破壞。 哦......一週的第一天的值是SendMessage函數 的lParam的(在wParam中始終爲0)
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
Any) As Long
Private Const MCM_FIRST As Long = &H1000&
Private Const MCM_SETFIRSTDAYOFWEEK As Long = (MCM_FIRST + 15)
Private Const DTM_FIRST As Long = &H1000&
Private Const DTM_GETMONTHCAL As Long = (DTM_FIRST + 8)
Private Sub DTPicker1_DropDown()
Dim hMonthview As Long
'Get hwnd of MonthView control
hMonthview = SendMessage(DTPicker1.hwnd, DTM_GETMONTHCAL, 0&, ByVal 0&)
'Set first day of week for MonthView, according to the following:
' Value Day of Week
' 0 Monday
' 1 Tuesday
' 2 Wednesday
' 3 Thursday
' 4 Friday
' 5 Saturday
' 6 Sunday
Call SendMessage(hMonthview, MCM_SETFIRSTDAYOFWEEK, 0&, ByVal 6&) 'first
day of week = Sunday
End Sub
精湛,謝謝! –
看起來簡單可靠。 – wqw