Здравствуйте, Sandro Peres, Вы писали:
SP>Здравствуйте! SP>Подскажите, пожалуйста, каким образом можно передать значения элементов управления дочернего диалогового окна для обработки их в родительском. Например, ввести информацию для подключения к базе данных в диалоговом окне, а работу с базой производить в процедуре главного окна.
Например, создать структуру в классе приложения, или в классе главного окна(в зависимости от области применения), потом передать её в конструктор окна коннекта, окно коннекта по завершению работы заполнит структуру данными, которыми потом будет пользоваться приложение или главное окно.
Здравствуйте!
Подскажите, пожалуйста, каким образом можно передать значения элементов управления дочернего диалогового окна для обработки их в родительском. Например, ввести информацию для подключения к базе данных в диалоговом окне, а работу с базой производить в процедуре главного окна.
Здравствуйте, Sandro Peres, Вы писали:
SP>Здравствуйте! SP>Подскажите, пожалуйста, каким образом можно передать значения элементов управления дочернего диалогового окна для обработки их в родительском. Например, ввести информацию для подключения к базе данных в диалоговом окне, а работу с базой производить в процедуре главного окна.
Вы бы пояснили более подробно, о чём идёт речь и что именно вызывает затруднения. И о каких контролах речь, Win32 окнах?
Здравствуйте, Jolly Roger, Вы писали:
JR>Здравствуйте, Sandro Peres, Вы писали:
SP>>Здравствуйте! SP>>Подскажите, пожалуйста, каким образом можно передать значения элементов управления дочернего диалогового окна для обработки их в родительском. Например, ввести информацию для подключения к базе данных в диалоговом окне, а работу с базой производить в процедуре главного окна.
JR>Вы бы пояснили более подробно, о чём идёт речь и что именно вызывает затруднения. И о каких контролах речь, Win32 окнах?
Я имею в виду следующее. Допустим, есть главное окно и его дочернее диалоговое с EDIT'ами, CHECKBOX'ами и т.п. Я могу получить введенное значение какого-нибудь EDIT'а:
GetDlgItemText(hDlg, IDC_EDIT, buffer, sizeof(buffer));
Как передать полученное значение buffer в главное окно?
Здравствуйте, Sandro Peres, Вы писали:
SP>Я имею в виду следующее. Допустим, есть главное окно и его дочернее диалоговое с EDIT'ами, CHECKBOX'ами и т.п. Я могу получить введенное значение какого-нибудь EDIT'а: SP>GetDlgItemText(hDlg, IDC_EDIT, buffer, sizeof(buffer)); SP>Как передать полученное значение buffer в главное окно?
По сути всё сводится к тому, что Вам уже предложили — заводите структуру (или класс), призакрытии дочернего окна заполняете её и в потом используете. А способов реализации этого много. Например, если Вы создаёте дочернее окно с помощью CreateWindowEx, то можете, как вариант, связать с ним указатель с помощью SetWindowLongPtr, а при закрытии получить его через GetWindowLongPtr и заполнить. Если Ваше дочернее окно — ресурсный диалог, показываемый модально, то можно передать адрес этой структуры в функцию DialogBoxParam (без ресурсов — DialogBoxIndirectParam) и в обработчике WM_INITDIALOG выполнить привязку к окну.
Также можно воспользоваться парой SetProp/GetProp, и даже просто глобальной переменной. В общем, возможностей достаточно много.
Здравствуйте, Jolly Roger, Вы писали:
JR>По сути всё сводится к тому, что Вам уже предложили — заводите структуру (или класс), призакрытии дочернего окна заполняете её и в потом используете. А способов реализации этого много. Например, если Вы создаёте дочернее окно с помощью CreateWindowEx, то можете, как вариант, связать с ним указатель с помощью SetWindowLongPtr, а при закрытии получить его через GetWindowLongPtr и заполнить. Если Ваше дочернее окно — ресурсный диалог, показываемый модально, то можно передать адрес этой структуры в функцию DialogBoxParam (без ресурсов — DialogBoxIndirectParam) и в обработчике WM_INITDIALOG выполнить привязку к окну.
JR>Также можно воспользоваться парой SetProp/GetProp, и даже просто глобальной переменной. В общем, возможностей достаточно много.
Спасибо большое. Как раз и рассматривал варианты без использования глобальной переменной.