DTPickerコントロールが「オンザフライ」で週の最初の日に使用する曜日を変更することは可能ですか?
この設定にはシステムの最初の曜日(コントロールパネルで定義)を使用していることは知っていますが、コントロールパネルの設定を変更せずに別の曜日を使用するように変更できますか?
DTPickerコントロールが「オンザフライ」で週の最初の日に使用する曜日を変更することは可能ですか?
この設定にはシステムの最初の曜日(コントロールパネルで定義)を使用していることは知っていますが、コントロールパネルの設定を変更せずに別の曜日を使用するように変更できますか?
MikeDによる古いVB6ニュースグループの投稿からこれを試してください
Win32APIを使用してDTPickerでそれを行うことができます。DTPickerは、実際のMonthViewコントロールを使用します。このコントロールにMCM_SETFIRSTDAYOFWEEKメッセージを送信して、週の最初の曜日を変更できます。それ以前はMonthViewコントロールが存在しなかったため、DropDownイベントでこれを実行する必要があります(実行できるのはこれだけです)。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