Попробуйте это, из post on the old VB6 newsgroup по MikeD
Вы можете сделать это с помощью DTPicker с помощью API Win32. DTPicker использует фактический элемент управления MonthView. Вы можете отправить этот элемент управления MCM_SETFIRSTDAYOFWEEK message, чтобы изменить первый день недели. Обратите внимание, что вы должны (и можете только) сделать это в событии DropDown, потому что до этого элемент управления MonthView не существует. MonthView распадается после события CloseUp. О ... значение в первый день недели является LPARAM из SendMessage (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
Superb, спасибо! –
Выглядит проста и надежно. – wqw