ещё вопрос о GetDlgItem

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

ещё вопрос о GetDlgItem

Сообщение Invader » 01.03.2007 (Чт) 1:00

hn2=GetDlgItem(hn1, id) разобрался ,но вот есть форма и на ней 3 типовые кнопки (да,нет, отмена) кнопка отмена имеет свой id=2 как програмно нажать её
нашёл константу WM_LBUTTONDOWN и пробавал её через SendMessage
hn2, WM_LBUTTONDOWN, ?,?)но ничего не получилось как можно это реализовать
умён и жаден,
характер отсуствует

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 01.03.2007 (Чт) 2:19

SendDlgItemMessage hwnd, 1, WM_LBUTTONDOWN, 0, 0
1 - ID контрола
hwnd - формы

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 01.03.2007 (Чт) 2:33

Не получилось, наверно, потому, что ты пытался эмулировать клик. Для клика надо слать WM_LBUTTONUP после WM_LBUTTONDOWN. Либо слать родительскому окну WM_COMMAND, в wParam (HIWORD) BN_CLICKED/ (LOWORD) ID, а в lParam hWnd кнопки.

А SendDlgItemMessage исключительно для удобства, Naked.

Using SendDlgItemMessage is identical to retrieving a handle of the specified control and calling the SendMessage function.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 01.03.2007 (Чт) 3:15

BV я попробовал SendMessage, ничего у меня не получилось. А вот SendDlgItemMessage сработал без проблем.

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Сообщение Invader » 01.03.2007 (Чт) 10:01

огромное спасибо Naked всё сработало сразу
умён и жаден,
характер отсуствует

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Сообщение Invader » 01.03.2007 (Чт) 11:09

не разгледел один раз сработало но остальные разы не хочет...
да я заметил что кнопка каторая меня интересует нажата но не отжата возможно уважаемый BV в очеред раз прав правда то, что он написал
я не понял :oops:
так что вопрос оставляю открытым
умён и жаден,
характер отсуствует

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 01.03.2007 (Чт) 17:43

почему-то у меня все работает...
покажи свой код

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Сообщение Invader » 02.03.2007 (Пт) 0:02

я уже разобрался просто заменил константу

iw = FindWindow(vbNullString, "Подключение удалённого доступа" & Chr(0))
SendDlgItemMessage iw, 2, BM_CLICK, 0, 0
ikw = FindWindow(vbNullString, "Проэкты"& Chr(0))
SendDlgItemMessage ikw, 1018, BM_CLICK, 0, 0
умён и жаден,
характер отсуствует


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 30

    TopList