powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Внедрение ActiveX в меню Office2007
1 сообщений из 1, страница 1 из 1
Внедрение ActiveX в меню Office2007
    #38669043
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня господа !

Имею необходимость внедрить ActiveX обьекта в меню 2007, синтаксис верен, под 2003 все отлично
работает

В Office 2007 - геморой в строках
.EnsureControl
Set mobjPBar = .QueryControlInterface("{00020400-0000-0000-C000-000000000046}")
Подскажите проблему

Заранее благодарен !

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
Option Explicit

Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40

Private WithEvents mobjPBar As MSComctlLib.ProgressBar

Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Private Declare Function GetParent Lib "User32" (ByVal hWnd As Long) As Long
Private Declare Function MoveWindow Lib "User32" (ByVal hWnd As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Sub CommandButton1_Click1()
    Const cBarName = "ProgressBar"
    Const msoControlActiveX = 22
    Const msoBarNoChangeDock = 16
    Const msoBarTop = 1
    Dim objCmb5 As CommandBar, objCmbAXCtl5 As [_CommandBarActiveX]
    Dim objCmb As Object, objCmbAXCtl As Object, objCmb1 As Object, objCmb2 As Object
    
    On Error Resume Next: Application.CommandBars(cBarName).Delete: On Error GoTo 0

    Set objCmb = Application.CommandBars.Add(cBarName, msoBarTop, , True)
    objCmb.Visible = True
    'objCmb.Protection = msoBarNoChangeDock
    Set objCmb1 = objCmb.Controls.Add(msoControlButton)
    Set objCmb2 = objCmb.Controls.Add(msoControlEdit)
    objCmb2.Text = "Hello"
    Set objCmbAXCtl5 = objCmb.Controls.Add(msoControlActiveX)
    With objCmbAXCtl5
        .Height = 24
        .Width = 1250
        .ControlCLSID = "{35053A22-8589-11D1-B16A-00C0F0283628}"  'Microsoft ProgressBar Control, version 6.0
        .EnsureControl
        Set mobjPBar = .QueryControlInterface("{00020400-0000-0000-C000-000000000046}")
        mobjPBar.Orientation = ccOrientationHorizontal
        MoveWindow GetParent(mobjPBar.hWnd), 0, 0, 0, 24, 1
    End With
    With mobjPBar
        .Max = 100
        .BorderStyle = ccFixedSingle
        .Appearance = cc3D
    End With
    objCmb.Visible = True[SRC VB]


End Sub
Private Sub Form_Timer()
If mobjPBar.Value + 10 > mobjPBar.Max Then
mobjPBar.Value = 0
ElseIf mobjPBar.Value < mobjPBar.Max Then
mobjPBar.Value = mobjPBar.Value + 10
End If
End Sub
[/SRC]
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Внедрение ActiveX в меню Office2007
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]