|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API | Передача данных диалоговым окном программе |
|
Win32 API | Передача данных диалоговым окном программе
|
lehha
Сообщения: n/a |
Народ всем привет!! Пишу на MSVC++ , в принципе сабж (точнее хочу передать из поля редактирования IDC_EDIT), перепробовал все, облазил весь MSDN все безуспешно, помогите ПЖЛ.
|
|
Отправлено: 08:12, 01-03-2005 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Ммм. А как насчёт, например
lResult = SendMessage( // returns LRESULT in lResult (HWND) hWndControl, // handle to destination control (UINT) WM_SETTEXT, // message ID (WPARAM) wParam, // = (WPARAM) () wParam; (LPARAM) lParam // = (LPARAM) () lParam; ); lParam - Pointer to a null-terminated string that is the window text. Вам только надо правильно указать hWndControl Это как вариант. Или я не совсем понял вопроса? |
Отправлено: 09:07, 01-03-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
lehha
Сообщения: n/a |
Возможно я не правильно описал ситуацию, постараюсь лутше
1. Есть модальное диалоговое окно. 2. В нем есть элементы управления типа таких как editcontrol, checkbox и т.п. (в часности editcontrol). 3. Туда вводится какая то строка и при нажатии кнопки OK надо получить данные из этого editcontrol. Пробовал GetDlgItemText(IDC_EDIT1,mytext,80), так ни чего не получается... |
Отправлено: 09:23, 01-03-2005 | #3 |
![]() Старожил Сообщения: 300
|
Профиль | Сайт | Отправить PM | Цитировать hasherfrog
только посылать не WM_SETTEXT, а WM_GETTEXT lehha Не пойму в чем проблема... Есть как минимум 2 способа: 1: [code] LRESULT CALLBACK !Ваша_диалоговая_функция!(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { ...... case WM_COMMAND: if (LOWORD(wParam) == IDOK) { HWND editCtrlHandle = FindWindowEx(hDlg,0,"EDIT",0); // это в случае с одним editbox'ом char* buf[1001]; SendMessage(editCtrlHandle,WM_GETTEXT,1001,(LPARAM)buf); MessageBox(hDlg,(LPCTSTR)buf,"Куль",0); return TRUE; } break; ....... } return FALSE; } 2: всё то же самое, только Оба способа проверенно работают. |
Отправлено: 10:33, 01-03-2005 | #4 |
lehha
Сообщения: n/a |
Savant
Я всегда писал консольные приложения, так что первый раз столкнулся с этим, в принципе я делал все тоже саме, но почему то у меня не передовались параметры, вот кусок моей функции в чем тут беда??? void CMainWnd::GetEdit() { CDialog mydialog(IDD_DIALOG1); if(mydialog.DoModal()==IDOK) { char* data[500]; GetDlgItemText(IDC_EDIT1,(LPSTR)data,500); } } void CMainWnd::GetEdit() { CDialog mydialog(IDD_DIALOG1); if(mydialog.DoModal()==IDOK) { char* data[500]; GetDlgItemText(mydialog,IDC_EDIT1,(LPSTR)buf,500); } } |
|
Отправлено: 11:10, 01-03-2005 | #5 |
![]() Старожил Сообщения: 300
|
Профиль | Сайт | Отправить PM | Цитировать lehha
Во втором куске для полноты явно нехватает :: перед GetDlgItemText, т.е. Хотя подожди, а у тя диалог вообще еще существует когда ты делаешь вызов GetDlgItemText() (я просто в MFC почти ни бум-бум, больше люблю WinAPI и классы AWin - "лёгкая" замена MFC)? Просто если нажатие на ОК завершает диалог, то все данные из него теряются. Попробуй сделать предложенную выше замену и напиши что вышло. Добавлено: Да, вполне возможно что диалог удаляется... Цитата:
|
|
Последний раз редактировалось Savant, 01-03-2005 в 11:41. Отправлено: 11:31, 01-03-2005 | #6 |
lehha
Сообщения: n/a |
Savant
Спасибо за наводку ![]() Поступил чуть по другому сначала всетаки определил класс диалогового окна, а потом по пройденой схеме ну и создал обработку OnOK() class CDialogData : public CDialog { public: CDialogData(CWnd* pParentWnd=NULL) : CDialog(IDD_DIALOG2, pParentWnd) {}; virtual void OnOK(); }; Пасибо!! |
Отправлено: 13:51, 01-03-2005 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Обращение к программе через API | poisonattack | Скриптовые языки администрирования Windows | 1 | 04-12-2009 11:17 | |
Помогите с диалоговым окном ! | Stacke | Microsoft Windows 2000/XP | 1 | 12-01-2007 00:07 | |
Win32 API | Нужна помошь по API функциям! | vasika_hk | Программирование и базы данных | 2 | 23-05-2006 09:51 | |
Win32 API | Дозвон | XCodeR | Программирование и базы данных | 5 | 08-04-2006 12:26 | |
Win32 API | Неизвестные функции | Savant | Программирование и базы данных | 9 | 02-03-2005 10:18 |
|