powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / OCX + MDI
8 сообщений из 8, страница 1 из 1
OCX + MDI
    #32640693
Boa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Boa
Гость
Есть приложение с MDI интерфейсом. Есть еще ocx, в нем есть своя форма. Можно ли как-нибудь сделать форму ocx дочерней для этого приложения?
OCX я сделал сам, вот мне интересно, какие параметры надо задать форме и как е правильно вызывать из OCX.
...
Рейтинг: 0 / 0
OCX + MDI
    #32642481
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
...
Рейтинг: 0 / 0
OCX + MDI
    #32642510
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как ни странно, возможно лучшим выходом будет переделать Вашу форму в контрол и положить его на обычную MDI-child форму.

Либо искать пути через API
...
Рейтинг: 0 / 0
OCX + MDI
    #32642794
Boa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Boa
Гость
2 Alexey
Здесь только через API. В этом MDI приложении нельзя на форму положить визуальные ActiveX. Там такая система, что объявляется переменная для этого ocx и используются все его свойства и методы. Если он сам из себя представляет форму, то ничего не увидим, а вот если у него есть метод, показывающий форму, то пожалуйста...

2 Antonariy

Код:

Public Function ShowChart()
Dim NAhWnd As Long
NAhWnd = FindWindow(vbNullString, "Parent Application") ' Все находит
SetParent Form1.hWnd, NAhWnd
Form1.Show
End Function

' Form1.MDIChild = true

Выдает ошибку, что нет родительской формы.
Подскажите, что не так.
...
Рейтинг: 0 / 0
OCX + MDI
    #32642956
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Boa2 Alexey
Здесь только через API. В этом MDI приложении нельзя на форму положить визуальные ActiveX. Там такая система, что объявляется переменная для этого ocx и используются все его свойства и методы. Если он сам из себя представляет форму, то ничего не увидим, а вот если у него есть метод, показывающий форму, то пожалуйста...


ну что же, тогда Вы в начале большого и интересного пути. Перед тем, как начинать разбираться с нужными API рекумендую почитать мнение google , и особо обратить внимание на замечание Vladimir Luzhko (находится по одной из ссылок) :
Vladimir Luzhko
SetParent is not enough for MDIchild form.
You have to reregister all Menus elements. + You you child form will
lose focus all time when you switch you task with another and never get it
back. + you have to set up all windows styles for a window which will be
MDIchild (SetWondowLong)
...
Рейтинг: 0 / 0
OCX + MDI
    #32643008
Alexey Kudinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще вариант - попробовать сторонний компонет. Например
MDIExtender Control
...
Рейтинг: 0 / 0
OCX + MDI
    #32643905
Boa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Boa
Гость
MDIExtender Control - это интересно. Попробую.
Всем спасибо за помощь.
...
Рейтинг: 0 / 0
OCX + MDI
    #32647075
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Boa:
Во-первых не SetParent Form1.hWnd, NAhWnd а SetParent NAhWnd, Form1.hWnd;
во-вторых не уверен, что FindWindow нашло правильное окно; в-третьих MDI-child можно сделать только во время создания окна (CreateWindow), если тебе нужно именно MDI-child, то забудь об этом. Хотя судя по описанию MDIExtender Control может помочь.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / OCX + MDI
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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