Автораскрытие комбобокса.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Автораскрытие комбобокса.

Сообщение Andrev » 10.04.2006 (Пн) 11:20

Пошарил по поиску. Нашел, что автовыпадение комбобокса происходит при нажатии Ctrl+down (кажется, так). Записал:

Private Sub Combo1_GotFocus()
SendKeys "%{DOWN}", True
End Sub

Да. Работает. НО! Работает только когда код запускается из ВБ. После компиляции в экзешник почему-то список не раскрывается. Чей глюк? Мой? ОС? ВБ?
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 10.04.2006 (Пн) 11:26

Private Const CB_SHOWDROPDOWN = &H14F

Public Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

SendMessage(ComboBox1.hwnd, CB_SHOWDROPDOWN, &O1, &O0)
Пора уже всем хорошим людям собраться и убить всех плохих людей.

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

Сообщение GSerg » 10.04.2006 (Пн) 11:30

&O1, &O0

Это чё? :neutral:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 10.04.2006 (Пн) 11:35

Восмеричная система это.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение GSerg » 10.04.2006 (Пн) 11:39

Это понятно, но зачем? :neutral:
И главное, lparam передан не byval.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 10.04.2006 (Пн) 11:50

Так ApiViewer предлагает, я ему обычно верю...

Так чего не работает?
Пора уже всем хорошим людям собраться и убить всех плохих людей.

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

Сообщение GSerg » 10.04.2006 (Пн) 11:54

К декларации претензий нет.
byval 0& при передаче.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 10.04.2006 (Пн) 11:55

SendMessage(ComboBox1.hwnd, CB_SHOWDROPDOWN, 1, 0)

:о) Для придирчивых!
Пора уже всем хорошим людям собраться и убить всех плохих людей.

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

Сообщение GSerg » 10.04.2006 (Пн) 11:58

Всё равно плохо.
byval 0&
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 10.04.2006 (Пн) 12:57

Блин, я же не переменную отдаю, byval по идее не нужен....
Пора уже всем хорошим людям собраться и убить всех плохих людей.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 10.04.2006 (Пн) 13:00

Нужен, вообще-то.
Lasciate ogni speranza, voi ch'entrate.

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Сообщение Andrev » 10.04.2006 (Пн) 14:06

Ё-моё!!! Ну и дебаты...
Так а всё-таки интересно было бы узнать, почему работа экзешника отличается от работы проекта.
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 10.04.2006 (Пн) 16:15

Нужен, вообще-то.

Хоть обоснуйте, а то может я и не прав. :о/
Пора уже всем хорошим людям собраться и убить всех плохих людей.

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

Сообщение GSerg » 10.04.2006 (Пн) 16:25

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

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Сообщение Andrev » 10.04.2006 (Пн) 17:02

Лю-ю-ю-ди!!!!! Вопос был не тот, КАК сделать автооткрытие комбобокса!!! Вопрос был, В ЧЕМ ГЛЮК? Почему Сендкейз работает в проекте, но НЕ РАБОТАЕТ в экзешнике?!!!
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 11.04.2006 (Вт) 10:36

Andrev Выключи дурачка, уже написали.

Код: Выделить всё
Private Const CB_SHOWDROPDOWN = &H14F

Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long

SendMessage Combo1.hwnd, CB_SHOWDROPDOWN, 1, ByVal 0&


GSerg Я осилил! :оР
Пора уже всем хорошим людям собраться и убить всех плохих людей.

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

Сообщение GSerg » 11.04.2006 (Вт) 11:32

GB826
Тоже выключай, вопрос нормальный.

Andrev
Лично у меня не работает ни в среде, ни в exe.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 11.04.2006 (Вт) 11:51

GSerg писал(а):Лично у меня не работает ни в среде, ни в exe.

Это потому что в GotFocus.
Правильнее делать Combo1.SetFocus: SendKeys "%{DOWN}", True, тогда работает.
Но еще правильнее юзать API.
Lasciate ogni speranza, voi ch'entrate.


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

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

Сейчас этот форум просматривают: SemrushBot и гости: 74

    TopList