Программа теряет фокус?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
JastUser
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 08.07.2003 (Вт) 10:23
Откуда: Moscow

Программа теряет фокус?

Сообщение JastUser » 08.07.2003 (Вт) 10:31

Столкнулся с такой проблемой:
Написал на VB-6 поставил ее в автозагрузку Win2000Prof
Она как положено грузиться тока теряет фокус.

подскажите как ей вернуть фокус, или как сделать чтоб не теряла?

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 08.07.2003 (Вт) 10:41

Код: Выделить всё
Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long


и где-нибудь в коде
Код: Выделить всё
SetFocuse Me.hWnd
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

JastUser
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 08.07.2003 (Вт) 10:23
Откуда: Moscow

Сообщение JastUser » 08.07.2003 (Вт) 10:48

Пасиб.

Как определить Me.hWnd, если не трудно можно тоже в примере так как я буду умирать искавши самостоятельно.

Или написанного ранее достаточно?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 08.07.2003 (Вт) 10:54

Достаточно :lol: Вполне.

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 08.07.2003 (Вт) 11:07

JastUser писал(а):Пасиб.

Как определить Me.hWnd, если не трудно можно тоже в примере так как я буду умирать искавши самостоятельно.

Или написанного ранее достаточно?

я плакаль...
ключевое слово Me ссылается на форму в коде которой используется.
т.е.
Код: Выделить всё
Private Sub Form1_Click()
    Debug.Print Me.hWnd
End Sub

и
Код: Выделить всё
Private Sub Form1_Click()
    Debug.Print Form1.hWnd
End Sub

дадут один и тотже результат...
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

JastUser
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 08.07.2003 (Вт) 10:23
Откуда: Moscow

Сообщение JastUser » 08.07.2003 (Вт) 11:16

:oops:
Пасиб.

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

Сообщение GSerg » 09.07.2003 (Ср) 7:30

Друзья... Любовь к API похвальна... Но нельзя же везде и всегда... Просто
Код: Выделить всё
Me.SetFocus
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 09.07.2003 (Ср) 7:49

GSerg писал(а):Друзья... Любовь к API похвальна... Но нельзя же везде и всегда... Просто
Код: Выделить всё
Me.SetFocus

мдя... а ведь и правда...
чейто меня видать переклинило... :?
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

JastUser
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 08.07.2003 (Вт) 10:23
Откуда: Moscow

Сообщение JastUser » 09.07.2003 (Ср) 8:23

И выходит так что мне этот фокус надобно постоянно ставить,
так как необходимо чтоб он не терялся. (Не могу выяснить причину потери фокуса, и соответсвенно момент)

Вот и выходи следующий вопрос - запретить потерю фокуса? Раз и навсегда! Токак как!

За все сказанное польшое спасибо буду испытвывать до этого использовал:

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)

В виде :
SetWindowPos Form1.hWnd, -1, 0, 0, 10000, 14000, &H40

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

Сообщение GSerg » 09.07.2003 (Ср) 8:25

Попробуй так
Код: Выделить всё
Private Sub Form_LostFocus()
  Me.SetFocus
End Sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4158
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 09.07.2003 (Ср) 9:00

Вот здесь:
http://bbs.vbstreets.ru/viewtopic.php?t=1888&highlight=
я обсуждал близкую тему, и этот код:

Private Sub Form_LostFocus()
Me.SetFocus
End Sub

не помог. Правда проблема была не в поиске причины сворачивания, а в ее устранении.

JastUser
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 08.07.2003 (Вт) 10:23
Откуда: Moscow

Сообщение JastUser » 09.07.2003 (Ср) 11:11

И как решилось, а то я тож пробывал, есть чуство что какая то прога грузиться после меня ( так как иногда и довольно редка моя прога захватывает себе таки фокус)

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 09.07.2003 (Ср) 11:18

JastUser, ты бы рассказал в чем смысл программы
глядишь может чего и придумаем...
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

JastUser
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 08.07.2003 (Вт) 10:23
Откуда: Moscow

Сообщение JastUser » 09.07.2003 (Ср) 13:14

На компе должна работать одна прога
Она работете с 1С через OLE, и COM-портом, специализированной клавиатурой
пот и все (типа теринала такого)
И вот в момент запуска иногда (часто) теряет фокус
и как следствие юзер не может ничего ввести
(причем юзер очень и очень тупой)

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 09.07.2003 (Ср) 14:19

ну тады килаем на форму таймер
и пускай он периодически устанавливает
фокус на окно и выводит его на передний план
Код: Выделить всё
Private Sub Timer1_Timer()
    Form1.ZOrder 0
    Form1.SetFocus
End Sub

интервал таймера сам подбереш.
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC


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

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

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

    TopList