Элементарно, Ватсон Плюс - согласие, одобрение. Минус - несогласие. Число - степень.Me! писал(а):Antonariy
я снова тебя не понял...
Элементарно, Ватсон Плюс - согласие, одобрение. Минус - несогласие. Число - степень.Me! писал(а):Antonariy
я снова тебя не понял...
Private Sub Timer1_Timer()
With vbalGrid1
.AddRow
.CellText(.Rows, 1) = Timer
.SortObject.SortColumn(1) = 0
.SortObject.SortOrder(1) = CCLOrderDescending
.SortObject.SortType(1) = CCLSortNumeric
.Sort
End With
End Sub
Private Sub Timer1_Timer()
Dim nIdx As Integer
With ucListView1
nIdx = .Count
Call .ItemAdd(nIdx, pvRandomString(3), 0, 1)
Call .SubItemSet(nIdx, 1, Timer, 0)
Call .SubItemSet(nIdx, 2, DateSerial(2004, Rnd * 11 + 1, Rnd * 30 + 1), 0)
.Sort 1, soDescending, stNumeric
End With
End Sub
Мегакруто, но нихрена не понятно, кроме того, что он формирует windowproc в памяти непосредственно из сырых байтов, делает их исполняемыми, а потом тычет окно носом в начало массива и говорит: "Это твоя процедура! Исполнять!!!". И дальнейшее общение с сабклассингом происходит в той же манере, типа "Ну ты, козел, ...".
- да.делает их исполняемыми
' Self-Subclassing UserControl template (IDE safe).
Есть вообще возможность перевести оконную процедуру на более цензурный язык?
Public Sub zSubclass_Proc(ByVal bBefore As Boolean, ByRef bHandled As Boolean, ByRef lReturn As Long, ByRef lng_hWnd As Long, ByRef uMsg As Long, ByRef wParam As Long, ByRef lParam As Long)
' If you really know what you're doing, it's possible to change the values of the
' hWnd, uMsg, wParam and lParam parameters in a 'before' callback so that different
' values get passed to the default handler.. and optionaly, the 'after' callback
Antonariy писал(а):Как получить структуру NMLISTVIEW в событиях WM_*BUTTONDOWN и WM_CHAR
Public Property Get ItemLParam$(ByVal Item%)
Dim uLVI As LVITEM_lp
If (m_hListView) Then
uLVI.iItem = Item
uLVI.mask = LVIF_PARAM
Call SendMessageA(m_hListView, &H1005, Item, uLVI)
ItemLParam = uLVI.lParam
End If
End Property
2. Забыт, как страшный сон, баг, из-за которого работоспособен был только один инстанс листвью.
А эта гадость тоже с блэк-кодингом.
Public Enum eBorderStyleConstants
[bsNone] = 0
[bsThin] = 1
[bsThick] = 2
End Enum
этот код одинаковый для листвью и листбокса:
Private m_BorderStyle As eBorderStyleConstants
Public Property Get BorderStyle() As eBorderStyleConstants
BorderStyle = m_BorderStyle
End Property
Public Property Let BorderStyle(ByVal New_BorderStyle As eBorderStyleConstants)
m_BorderStyle = New_BorderStyle
Call pvSetBorderStyle(UserControl.hWnd, m_BorderStyle)
Call UserControl_Resize
End Property
Причём ещё и с кривым, DEP-unsafe блэк-кодингом.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 57