Определить момент активации родительского окна

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ФАНТОМНЫЙ ЮЗЕР
Обычный пользователь
Обычный пользователь
 
Сообщения: 50
Зарегистрирован: 27.12.2007 (Чт) 20:08
Откуда: phpbb_users

Определить момент активации родительского окна

Сообщение ФАНТОМНЫЙ ЮЗЕР » 11.10.2004 (Пн) 5:34

Подскажите, пожалуйста, как определить факт создания родительского окна при помощи сообщений WM_, чтобы определить, что :?: :
1. все элементы UserControl.Parent.Controls активизированы;
2. получить список элементов UserControl.Parent.Controls;
3. и установить требуемое сообщение UDM_SETBUDDY.

События в UserControl получают при помощи установки оконнных ловушек командой SetWindowLong, которая затем обращается к подпрограмме WndProc:
Код: Выделить всё
SetWindowLong(hWndNew, GWL_WNDPROC, AddressOf WndCall)
...
Public Sub WndProc(ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByRef Result As Long)
    Select Case Msg
        Case WM_ ... ????
               Call SendMessage(m_hWnd, UDM_SETBUDDY, m_BuddyhWnd, ByVal 0&)
    End Select
End Sub

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 11.10.2004 (Пн) 7:01

Если честно, я ОЧЕНЬ не советую делать сабклассинг окна с помощью контрола, расположенного на этом окне.
Попомните мое слово...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.10.2004 (Пн) 11:21

Чел, фигнёй не страдай...
Ты всё пытаешься updown сделать? Ну сделай его правильно...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ФАНТОМНЫЙ ЮЗЕР
Обычный пользователь
Обычный пользователь
 
Сообщения: 50
Зарегистрирован: 27.12.2007 (Чт) 20:08
Откуда: phpbb_users

Сообщение ФАНТОМНЫЙ ЮЗЕР » 12.10.2004 (Вт) 5:44

А как правильно???
Чьё это было сообщение?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.10.2004 (Вт) 11:04

Код: Выделить всё
Option Explicit

Private Sub UserControl_Show()
  Dim c As Control
 
  For Each c In Parent.Controls
    UserControl.Print c.Name
  Next
End Sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

ФАНТОМНЫЙ ЮЗЕР
Обычный пользователь
Обычный пользователь
 
Сообщения: 50
Зарегистрирован: 27.12.2007 (Чт) 20:08
Откуда: phpbb_users

Сообщение ФАНТОМНЫЙ ЮЗЕР » 26.10.2004 (Вт) 0:15

Спасибо, работает.
Однако этот алгоритма срабатывает только для первого экземпляра UserControl на форме. Второй экземпляр вообще не инициализируется.

Подскажите, как же быть :?:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

    TopList  
cron