Public Sub CreateMyBar() Dim MyBar As CommandBar Dim butMyBar As CommandBarButton Dim BarHwnd As Long, ExHwnd As Long, XldeskHwnd As Long Dim frmStyle As Long Dim xlR As RECT 'Индитификатор XLDESK окна ' XldeskHwnd = FindWindowEx(Application.hwnd, 0, "XLDESK", vbNullString) 'Кординаты XLDESK окна ' GetWindowRect XldeskHwnd, xlR 'Проверка наличия меню For Each MyBar In CommandBars If MyBar.Name = "DocBar" Then Application.CommandBars("DocBar").Delete Next 'Создаем меню Set MyBar = Application.CommandBars.Add("DocBar", msoBarRight, False, True) MyBar.Protection = msoBarNoMove Set butMyBar = Application.CommandBars("DocBar").Controls.Add(msoControlButton) butMyBar.Height = 200 butMyBar.Width = 550 MyBar.Visible = True 'Загружаем форму Load MyForm 'Индитификатор формы FormHwnd = FindWindow("ThunderDFrame", MyForm.Caption) 'Читаем и изменяем стиль формы frmStyle = GetWindowLong(FormHwnd, GWL_STYLE) _ - WS_CAPTION - WS_BORDER - WS_POPUP - WS_SYSMENU 'Индитификатор Excel 2 окна ExHwnd = FindWindowEx(Application.hwnd, 0, "EXCEL2", vbNullString) 'Индетификатор панели DocBar BarHwnd = FindWindowEx(ExHwnd, 0, "MsoCommandBar", "DocBar") 'Назначаем нового родителя SetParent FormHwnd, BarHwnd 'Устанавливаем стили формы SetWindowLong FormHwnd, GWL_STYLE, frmStyle SetWindowLong FormHwnd, -20, &H0 'Показываем форму MyForm.Show End Sub Подскажите как установить размеры панели DocBar. Если у кого примеры API для работы с CommandBars. Буду благодарен за примеры. E-mail: VlasenkoFedor@mail.ru
Ответить
|