Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.14.86] |
|
Сообщ.
#1
,
|
|
|
Подскажите, пожалуйста, почему при создании элемента UpDpwn
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 ' (не возвращается дескриптор Buddy) 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) - все прекрасно работает |