Страница: 1 |
Страница: 1 |
Вопрос: Создание Event События
Добавлено: 06.12.05 17:39
Автор вопроса: VERiTAS
Доброго вечера.
Вопрос(ы):
1. Я использую в проекте ActiveMovie Control type library (quartz.dll). На сколько этот dll
"стандартный" для Windows., t.е. нужно ли с собой его таскать, или же он присутствует во
всех "окнах". Судя по MSDN он входит в состав пакета DirectX начиная от 8.1, но кто его
знает, может и не входит :) ?
2. Как создать Event событие для объекта (нестандартного, и созданного из модуля) ?
Конкретнее: во время выполнения программы создается объект:
<b>VideoWindow As IVideoWindow </b> 'который собственно является окном в котором
воспроизводится видео. Затем он присваивается к <b>owner</b> объекту, например к
<b>PictureBox</b> на форме. Собственно после, созданный "комплект" служит для вывода
видео.
НООООО! как ловить события <b>Click, MouseMove e.t.d.</b> - на таком объекте, как
<b>VideoWindow</b> непонятно ??????
Я думал что можно так же как при создании нового объекта в режиме runtime, ну как:
Private Sub NewButton_Click()
MsgBox "Вы нажали на новую кнопку"
End Sub
Private Sub Form_Load()
Set NewButton = Controls.Add("VB.CommandButton", "NewButton")появляется новая кнопка
NewButton.Visible = True
NewButton.Height = 1000
NewButton.Width = 1000
NewButton.Top = 0
NewButton.Left = 0
NewButton.Caption = "Нажми на меня!!!!"
End Sub
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #1
Добавлено: 08.12.05 01:07
Странно, почему нет ответов - избитая на нет тема.
1. Не знаю как у кого - у меня есть. 8)
2. Надо сабклассировать новое окно (перехватывать сообщения) и обрабатывать их в собственном обработчике. Ищи "сабклассинг в VB", открывай API-Viwer, тырь оттуда все WM_... и делай всё как на С++ при создании диалогов. Т.е. через Select Case.
Имхо, тогда проще сразу нарисовать кнопку, сделать её невидимой и весь твой код в процедуре загрузки заменить на Button1.Visible = True.
Номер ответа: 2
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #2
Добавлено: 08.12.05 13:15
Напиши для объекта враппер и обрабатывай события в нем.
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 08.12.05 14:34
Да массивами сделай и не парося, нарисуй одну кнопку CommandButton1(0), потом подгружай остальные через Load, а обработчик клика для массива всёравно один... а там смотриш какой Index нажали и соответственно обрабатывать... Сабкласингом можно - но лишний гмор, в VB галимо сабкласинг делать, пока отладишь умереть можно, чуть что не так - бум и вылетаем... Потом с правой хук по монитору, клава в стенку и пошёл пиво пить - проверено
Номер ответа: 4
Автор ответа:
VERiTAS
Вопросов: 5
Ответов: 6
Профиль | | #4
Добавлено: 13.12.05 13:21
HACKER причем тут CommandButton, суть то не вней а в ActiveMovieWindow.
Насчет сабклассинга я тоже подумывал, но на самом деле стоко "гемора" и к тому же я не очень хорошо с ним знаком поэтому решил спросить, может есть другой выход...