
1. не устанавливается Buddy контроль;
2. не работает AutoChangeBuddyText;
3. не работает ShowThousandsSeparator.
- Код: Выделить всё
Private Function Create(Optional ByVal dwSelect As Boolean = False)
Dim dwMax As Long
Dim dwMin As Long
Dim dwValue As Long
Dim dwBase As Long
Dim dwStyle As Long
Dim c As Control
If m_hWnd <> 0 Then
' Сохранить предыдущие установки элемента управления
If dwSelect Or m_ReadProp Then
dwMax = Max
dwMin = Min
dwValue = Value
GetAccel
dwBase = Base
End If
End If
'// Гарантировать, что мы уже не имеем управления UpDown:
Detach
'// Создать контроль:
dwStyle = WS_VISIBLE Or WS_CHILD
dwStyle = dwStyle Or m_Alignment Or m_Orientation
If m_ArrowKeysChange Then
dwStyle = dwStyle Or UDS_ARROWKEYS
End If
If m_AutoChangeBuddyText Then
dwStyle = dwStyle Or UDS_SETBUDDYINT
End If
If Not (m_ShowThousandsSeparator) Then
dwStyle = dwStyle Or UDS_NOTHOUSANDS
End If
If m_Wrap Then
dwStyle = dwStyle Or UDS_WRAP
End If
'// Проверка коректности
Debug.Assert (m_hWnd = 0)
If (m_hWnd = 0) Then
'// Создать элемент управления UpDown
m_hWnd = CreateWindowEx(WS_EX_STATICEDGE, UPDOWN_CLASS, vbNullString, dwStyle, _
0, 0, UserControl.ScaleWidth \ Screen.TwipsPerPixelX, UserControl.ScaleHeight \ Screen.TwipsPerPixelY, _
UserControl.hWnd, 0, App.hInstance, ByVal 0&)
If (m_hWnd <> 0) Then
UserControl.ParentControls.ParentControlsType = vbExtender
If m_BuddyControl <> "" Then
On Error GoTo ErrorHandler
For Each c In UserControl.Parent.Controls
If m_BuddyControl = c.Name Then
' Сохранить дескриптор указанного элемента управления
m_BuddyhWnd = c.hWnd
Exit For
End If
Next c
ErrorHandler: Call SendMessage(m_hWnd, UDM_SETBUDDY, m_BuddyhWnd, ByVal 0&)
Debug.Print SendMessage(m_hWnd, UDM_GETBUDDY, 0, ByVal 0&) & "; " & m_BuddyhWnd [b]' (не возвращается дескриптор Buddy)[/b]
End If
SetAccel
If dwSelect Or m_ReadProp Then
Max = dwMax
Min = dwMin
Value = dwValue
Base = dwBase
m_ReadProp = False
End If
End If
If (Ambient.UserMode) Then
'// Запуск класса
SubClass
m_SubClass = True
End If
End If
End Function
Пробовал тот же алгоритм создания элемента UpDown при инициализации формы (Form_Load) - все прекрасно работает
