Здравствуйте уважаемые эксперты! Маленький вопросик: Как програмно, с помощью api, заполнить поле "Edit" и нажать кнопку?(SetWindowText() не подходит, т. к. меняет только заголовок окна:-() Заранее благодарен.
Здравствуйте, Саша! Вообщето SetWindowText вполне подходит, ее только нужно вызвать правильно. Установить текст в едит можно так: 1)GetDlgItem(ID_OF_YOUR_EDIT)->SetWindowText("Текст для едита"); 2)Либо если у тебя есть HWNDешник твоего едита можно вызвать ее как АПИ ::SetWindowText(hWnd_of_your_edit,"The text you want"); или так CWnd::FromHandle(hWnd_of_your_edit)->SetWindowText("The text you want"); Ну а на счет кнопки, то Вы тут немного неккоректны, нужно не нажать кнопку (хотя и это тоже можно сделать), а вызвать обработчик нажатия кнопки, те функцию. Eg: OnButton1(); Вот вроде и все!
Ответ отправлен: 20.11.2002, 06:41 Отправитель: PL Отвечает Jadd
Здравствуйте, Саша! А эдит как объявлен? Как CString или как CEdit? Если как CString, то работаешь как со строкой. А кнопку нажать - вызываешь обработчик нажатия нужной кнопки. Ответ отправлен: 20.11.2002, 19:22 Отправитель: Jadd Отвечает Gibbel
Приветствую Вас, Саша! Ну, вообще-то, именно SetWindowText(), но только отправлять его нужно элементу управления Edit. Можно также ему послать WM_SETTEXT. Или же, если Edit в том же приложении, откуда хочешь передавать ему информацию, то можешь сделать так: вызываешь GetWindowLong() (насколько я помню, параметр, необходимый нам #0). Дальше, к этому параметру GlobalLock(). И все, ты получаешь адрес, указывающий на строку, отображаемую в этом Edit. ;-) Да, незабудь потом GlobalUnlock() выполнить. Ответ отправлен: 20.11.2002, 09:48 Отправитель: Gibbel
Вопрос № 378
Дополнение к вопросу №377: Поле "Edit" имеет стиль ES_PASSWORD и никак не хочет заполняться SetWindowText(), вернее заполняется его заголовок, а текста(звездочек) в поле нет:-((( Кнопку мне нужно нажать в окне другой программы(уже запущеной:-)))) Нужно сделать все на api!
Здравствуйте, Саша! 1)Попробуй UpdateWindow() 2) Просылай WM_COMMAND этой кнопке
Ответ отправлен: 20.11.2002, 09:00 Отправитель: DiGiT[old] Отвечает Zloy
Здравствуйте, Саша! Относительно первого - поробуй послать сообщение WM_SETTEXT wParam = 0; // not used; must be zero lParam = (LPARAM)(LPCTSTR)lpsz; // address of window-text string или перерисуй окно UpdateWindow. Нажать кнопку в другой проге: получить её хендэл (например с помощью FindWindow), а потом послать ей сообщение, о том, что она нажата (через WM_COMMAND)
Ответ отправлен: 20.11.2002, 09:40 Отправитель: Zloy Отвечает Dzik
Доброе время суток, Саша! 1) Может SetDlgItemText 2) Посылай сообщение WM_COMMAND, с параметром - хэндлом кнопки
Ответ отправлен: 20.11.2002, 11:52 Отправитель: Dzik
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.