Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

передача данных между диалоговыми окнами

30K
18 июля 2007 года
Inq
5 / / 18.07.2007
проблема в общем - то довольно глупая, но почему то никак не получается найти ответ :(
есть 2 диалоговых окна - родительское и дочернее, и нужно передать структуру из родительского в дочернее... идеи есть, но вот почему-то при попытке реализовать - ничего не получается :( и пытался через класс родительского окна(но почему-то не хочет дочернее воспринимать это), и через сообщения(но возникла глупая проблема - как послать сообщение из родительского в дочернее)..
все это в visual studio 2003
если кто знает - помогите пожалуйста :) желательно прямо указать что и как делать) а то кого из друзей не спрашивал - идеи дают, но ни я, ни они реализовать не могут )) заранее спасибо :)
9.6K
19 июля 2007 года
quakersasha
23 / / 21.10.2005
Так а в чем проблема (хотя может я все ни так понял)?

если есть две формы, и в каждой из них есть объект нужной нам структуры, то, создавая новое дочернее диалговое окно и, объявив в классе этого окна объект нужной нам структуры как public (или указать свойство) мы обычным присваивание сможем передать данные из одного окна в другое.
29K
19 июля 2007 года
NanoBits
18 / / 18.07.2007
Цитата: Inq

...
и через сообщения(но возникла глупая проблема - как послать сообщение из родительского в дочернее)..
...


если окно 1 в exe1 и окно 2 в exe2 тогда через сендмесcаге wm_copydata
а если окно 1 и окно 2 в одном exe тогда зачем посылать сообщения ?

30K
19 июля 2007 года
Inq
5 / / 18.07.2007
в общем ситуация такая - 2 диалога(из 1-го ехе, 1 создает второй), существует структура(определенная не в классе 1-го окна, а вообще в другом файле этого же проэкта) при попытке просто определить указатель на структуру в классе 2-го диалогого окна - компилятор говорит, что типа не знает такой структуры, если сделать #include вайла со структурой - ругается spl_wind error LNK2005: "double __cdecl delta(struct x__y *,struct x__y *)" (?delta@@YANPAUx__y@@0@Z) already defined in GraphDlg.obj
GraphDlg - это относится ко 2-му окну.... вот... :(
18K
20 июля 2007 года
casey
11 / / 18.07.2006
В твоем случае наверное подойдет использование 1-й структуры обоими окнами совместно, тогда нужно в 1 файле объявить структуру (и переменную типа этой структуры), а во втором использовать extern-объявление, например:
1.cpp

struct my_struct{
...
};

my_struct mmm;

2.cpp

extern my_struct mmm;
30K
20 июля 2007 года
Inq
5 / / 18.07.2007
спасибо, но тут проблемка - обьявление структуры производится в отдельном файле(вместе с еще кучей всяких функций и обьявлений для удобства использования) и тут возникает проблема - что если не делать во 2-м файле #include "struct.h"(как раз тут и производится обьявление структуры) то компилятор ругается :( а если делать - то опять же error LNK2005: "double __cdecl delta(struct x__y *,struct x__y *)" (?delta@@YANPAUx__y@@0@Z) already defined in GraphDlg.obj
:( есть ли какой-нибудь способ этого избежать? а то не хочется перетаскивать все из отдельного файлика в тот где диалог, слишком уж нечитабельно становится :(
18K
23 июля 2007 года
casey
11 / / 18.07.2006
Цитата: Inq
спасибо, но тут проблемка - обьявление структуры производится в отдельном файле(вместе с еще кучей всяких функций и обьявлений для удобства использования) и тут возникает проблема - что если не делать во 2-м файле #include "struct.h"(как раз тут и производится обьявление структуры) то компилятор ругается :( а если делать - то опять же error LNK2005: "double __cdecl delta(struct x__y *,struct x__y *)" (?delta@@YANPAUx__y@@0@Z) already defined in GraphDlg.obj
:( есть ли какой-нибудь способ этого избежать? а то не хочется перетаскивать все из отдельного файлика в тот где диалог, слишком уж нечитабельно становится :(



Просто у тебя в хедере определяются переменные, тебе нужно сделать, чтоб в хедере были только объявления типов, а все определения переменных делать в .cpp, причем в одном обычные определения, а в другом extern

30K
25 июля 2007 года
Inq
5 / / 18.07.2007
фух, спасибо большое =)
ПС: да, иногда действительно стоит немного отвлечься от программы))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог