是否可以更改DTPicker控件用于“动态”每周的第一天的星期几?
我知道它使用系统每周的第一天(在控制面板中定义)进行此设置,但它是否可以在不更改控制面板设置的情况下更改为使用另一天?
发布于 2012-01-20 20:53:43
试试这个,来自MikeD的post on the old VB6 newsgroup
通过使用Win32
,您可以通过DTPicker完成此操作。DTPicker使用实际的MonthView控件。您可以向此控件发送MCM_SETFIRSTDAYOFWEEK message以更改每周的第一天。请注意,您必须(并且只能)在DropDown事件中执行此操作,因为在此之前,MonthView控件并不存在。在CloseUp事件之后,MonthView被销毁。每周第一天的Oh...the值是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 https://stackoverflow.com/questions/8939317
复制相似问题