'
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
Private Declare Function CLSIDFromString Lib "ole32.dll" (ByVal lpszProgID As Long, pCLSID As GUID) As Long
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
Private Declare Function OleCreatePropertyFrame Lib "oleaut32.dll" (ByVal hWndOwner As Long, ByVal x As Long, ByVal y As Long, ByVal lpszCaption As Long, ByVal cObjects As Long, ByRef ppUnk As Long, ByVal cPages As Long, ByRef pPageClsID As GUID, ByVal lcid As Long, ByVal dwReserved As Long, ByVal pvReserved As Long) As Long
'
Public Sub ShowFontProperty(ByVal hwnd As Long, ByVal Caption As String, ByRef MyObject As Object)
Dim CLSID As GUID
CLSIDFromString StrPtr("{7EBDAAE0-8120-11CF-899F-00AA00688B10}"), CLSID
OleCreatePropertyFrame hwnd, 0&, 0&, StrPtr(Caption), 1, ObjPtr(MyObject), 1, CLSID, GetSystemDefaultLCID, 0&, 0&
End Sub
'
Public Sub ShowPictureProperty(ByVal hwnd As Long, ByVal Caption As String, ByRef MyObject As Object)
Dim CLSID As GUID
CLSIDFromString StrPtr("{7EBDAAE2-8120-11CF-899F-00AA00688B10}"), CLSID
OleCreatePropertyFrame hwnd, 0&, 0&, StrPtr(Caption), 1, ObjPtr(MyObject), 1, CLSID, GetSystemDefaultLCID, 0&, 0&
End Sub
Public Sub ShowColorProperty(ByVal hwnd As Long, ByVal Caption As String, ByRef MyObject As Object)
Dim CLSID As GUID
CLSIDFromString StrPtr("{7EBDAAE1-8120-11CF-899F-00AA00688B10}"), CLSID
OleCreatePropertyFrame hwnd, 0&, 0&, StrPtr(Caption), 1, ObjPtr(MyObject), 1, CLSID, GetSystemDefaultLCID, 0&, 0&
End Sub
Public Sub ShowStandardProperty(ByVal hwnd As Long, ByVal Caption As String, ByRef MyObject As Object)
Dim CLSID As GUID
CLSIDFromString StrPtr("{13696E69-DD77-4151-A5E7-45DF368FCA91}"), CLSID
OleCreatePropertyFrame hwnd, 0&, 0&, StrPtr(Caption), 1, ObjPtr(MyObject), 1, CLSID, GetSystemDefaultLCID, 0&, 0&
End Sub
Public Sub ShowFormatProperty(ByVal hwnd As Long, ByVal Caption As String, ByRef MyObject As Object)
Dim CLSID As GUID
'MSStdFmt Format Property Page Object
CLSIDFromString StrPtr("{699DDBCC-DC7E-11D0-BCF7-00C04FC2FB86}"), CLSID
OleCreatePropertyFrame hwnd, 0&, 0&, StrPtr(Caption), 1, ObjPtr(MyObject), 1, CLSID, GetSystemDefaultLCID, 0&, 0&
End Sub
А Custom - это обычная форма. Если контрол твой, то вызываешь эту форму.
Мне кажется, что никак
А вопрос, зачем оно тебе?
Радикальный метод - возьми, раскомпилируй VB IDE, и посмотри, как он это делает.
Но мое личное мнение, что ничего у тебя не получится. Представь себе, что каждый начнет тянуть во время работы программы это окошко, и представь себе, что после этого будет с программой?
А какие свойства тебе надо задать в run-time?
Sub ShowProperties( _
ByVal Ctrl As Object, _
Optional ByVal CtrlName As String, _
Optional ByVal hWndParent As Long)
Dim oSPP As ISpecifyPropertyPages
Dim tPages As CAUUID
On Error Resume Next
' Get ISpecifyPropertyPages interface
' of the control
Set oSPP = Ctrl
If oSPP Is Nothing Then
' If the QI fails try using the
' Object property of the control
Set oSPP = Ctrl.Object
If oSPP Is Nothing Then
' Reset the error handler
On Error GoTo 0
' Raise an error
Err.Raise 13
End If
End If
' Get the CLSIDs of the pages
oSPP.GetPages tPages
' Show the pages
OleCreatePropertyFrame hWndParent, 0, 0, _
CtrlName, 1, Ctrl, tPages.cElems, _
ByVal tPages.pElems, 0, 0, 0
' Release the pages array
CoTaskMemFree tPages.pElems
End
MMControl1.PlayVisible = False
MMControl1.FileName = "Путь к файлу"
jangle, только что проверил этот код с MMControl -- работает.
Всё, что ты перечислил, можно задать программно
jangle писал(а):Можешь показать код который работает?
jangle писал(а):jangle, только что проверил этот код с MMControl -- работает.
Можешь показать код который работает?
Private Sub Form_DblClick()
ShowProperties MMControl1, "MMControl1", hWnd
End Sub
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 34