Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
Пытаюсь получить текст из EDIT-контрола дочернего окна своего приложения. Вроде бы все правильно: TCHAR wcChildBuffer[100]; GetDlgItemText(hwndChildDlg, IDC_ED_DLG, wcChildBuffer, 100); Результат функция возвращает нулевой. GetLastError говорит "недопустимый дескриптор окна" Хотя если пытаться получить текст в CALLBACK-функции этого дочернего окна, то все нормально Что тут не так? Обрыл уже все что только можно, нигде нету ответа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 22:38 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
Random2, Все в одном процессе происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 22:50 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
Да, все в одном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 22:54 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
Random2, Тогда и правда плохой дескриптор. напечатайте его, хоть массаж боксом, хоть как, и проверь спаем, что хэндлер такой и именно тот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 22:59 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
ID контрола нормальный. Хендл дочернего окна правильный. Переменные глобальные, поэтому когда GetDlgItemText с теми же ID и хендлом дочернего окна выполняется в CALLBACK функции этого дочернего окна, функция отрабатывает нормально. Может в этом все дело? Но нигде про это ни слова не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 23:46 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
А прописать его как #include "ChildName.h" и потом ChildNameForm1->Edit1->Text; ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2012, 23:57 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
Freeze729 , мне нужно на WinAPI, не на C++ Builder. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2012, 00:20 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
Неужели никто не знает причины? Для нагладности (может быть у меня в коде что-то не так) прикладываю исходник простейший тестовый. Что еще интересно, с диалогового окна я могу получить текст с контрола главного окна, а вот наоборот - ну никак. Что это может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2012, 03:25 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
Random2, Код: plaintext 1. 2. 3. 4. 5. 6. К моменту GetDlgItemText(hChildDlg,ID_MYEDIT,buff,150) модальное окно уже уничтожено. Разве нет? Попробуй получать текст в ChildDlgProc до вызова EndDialog(hWnd, 0). Потом каким-то образом передавать в MainDlgProc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2012, 09:18 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
Random2Неужели никто не знает причины? Для нагладности (может быть у меня в коде что-то не так) прикладываю исходник простейший тестовый. Что еще интересно, с диалогового окна я могу получить текст с контрола главного окна, а вот наоборот - ну никак. Что это может быть? Причина ю ошибка в твой программе. Ищи. Не можеш - опубликуй исходник, может кто то поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2012, 09:52 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
m_SlaRandom2, Код: plaintext 1. 2. 3. 4. 5. 6. К моменту GetDlgItemText(hChildDlg,ID_MYEDIT,buff,150) модальное окно уже уничтожено. Разве нет? Попробуй получать текст в ChildDlgProc до вызова EndDialog(hWnd, 0). Потом каким-то образом передавать в MainDlgProc. Да похоже на то. Dialog box это модальное окно, после выхода из этой функции окно уничтожается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2012, 09:55 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
MasterZiv, я знаю что причина в моей программе. Я прикрепил исходник к сообщению от "сегодня, 03:25 (13287990)". m_Sla, скорее всего Вы правы. В МСДНе написано, что окно уничтожается, хоть и не сразу, но когда я проверяю из окна родителя на какую кнопку кликнул юзер, то оно уже уничтожено. То есть хоть в переменной хендл и есть, но в системе окна с таким хендлом уже нету. Другой вопрос теперь. Выход временный я нашел - я узнаю что ввел юзер в поля ввода перед закрытием диалогового окна и заношу эти значения в глобальные переменные. Но это не совсем удобно, т.к. если полей ввода будет 10 и диалоговых окон несколько, для каждого поля ввода неудобно будет заводить переменную. Какой выход из такой ситуации есть? К тому же у меня окно показывается как для редактирования записи с главного окна так и для добавления новой, инфа вводится похожая, просто обрабатывается по-разному. Удобно было бы обрабатывать после вызова DialogBox, но приходится все делать в DialogBox, указывая разные флаги и т.д. Может есть более грамотный вариант? Может где-нибудь примеры есть, поделитесь пожалуйста. Т.к. ничего такого не могу найти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2012, 11:37 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
Random2, напиши класс обертку над модальным окном. Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2012, 17:14 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
Но это не совсем удобно, т.к. если полей ввода будет 10 и диалоговых > окон несколько, для каждого поля ввода неудобно будет заводить переменную. Какой > выход из такой ситуации есть? Не использовать глобальные переменные. Использовать неглобальные переменные. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 00:59 |
|
||
|
Получить текст из EDIT-контрола дочернего окна своего приложения
|
|||
|---|---|---|---|
|
#18+
Оказывается, есть функция DialogBoxParam, которая также создает диалог, но есть возможность указать любые данные в LPARAM. Поэтому передав указатель, можно использовать необходимые данные в функции и получить введенные параметры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2012, 23:51 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=92&tid=2020771]: |
0ms |
get settings: |
13ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
69ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 275ms |
| total: | 456ms |

| 0 / 0 |
