Здравствуйте A.Ustas, Вы писали:
A.U> Как воспользоваться (грамматно) функциями (членами класса) A.U>диалогового окна, вызвавшего модальное окно, из последнего ?
Я в некотором затруднении:
если имеется ввиду модель типа
Здравствуйте A.Ustas, Вы писали:
A.U> Как воспользоваться (грамматно) функциями (членами класса) A.U>диалогового окна, вызвавшего модальное окно, из последнего ?
Да уж и вправду очень ты мудрено написал. У тебя диалоговое окно вызывает модальное окно, и из модального окна ты хочеш вызывать ф-ии диалогового ???
Здравствуйте A.Ustas, Вы писали:
A.U> Как воспользоваться (грамматно) функциями (членами класса) A.U>диалогового окна, вызвавшего модальное окно, из последнего ?
Ой а что такое модальное окно? Мне почему то кажется что диалог это, или я в рассеяности что то путаю
Здравствуйте A.Ustas, Вы писали:
A.U> Как воспользоваться (грамматно) функциями (членами класса) A.U>диалогового окна, вызвавшего модальное окно, из последнего ?
Видимо прописать в класс Б мембером указатель на класс А, инициализировать его при создании Б и вперед. Или трудности?
Здравствуйте Dima2, Вы писали:
D>Здравствуйте A.Ustas, Вы писали:
A.U>> Как воспользоваться (грамматно) функциями (членами класса) A.U>>диалогового окна, вызвавшего модальное окно, из последнего ?
D>Да уж и вправду очень ты мудрено написал. У тебя диалоговое окно вызывает модальное окно, и из модального окна ты хочеш вызывать ф-ии диалогового ???
Да, ты правильно понял. Может просто унаследовать 2-е от 1-го и делов то...
Но, мне кажется, существует более изящное решение. Что посоветуешь ? Спасибо.
Здравствуйте Юнусов Булат, Вы писали:
ЮБ>Здравствуйте A.Ustas, Вы писали:
A.U>> Как воспользоваться (грамматно) функциями (членами класса) A.U>>диалогового окна, вызвавшего модальное окно, из последнего ? ЮБ>Видимо прописать в класс Б мембером указатель на класс А, инициализировать его при создании Б и вперед. Или трудности?
Здравствуйте A.Ustas, Вы писали:
A.U>Здравствуйте Юнусов Булат, Вы писали:
ЮБ>>Здравствуйте A.Ustas, Вы писали:
A.U>>> Как воспользоваться (грамматно) функциями (членами класса) A.U>>>диалогового окна, вызвавшего модальное окно, из последнего ? ЮБ>>Видимо прописать в класс Б мембером указатель на класс А, инициализировать его при создании Б и вперед. Или трудности? A.U> Трудности есть (нет опыта). Я в принципе так и думал сделать. Неужели по другому никак нельзя?
А если так, то при инциализации указателя нужно получить hwnd окна класса А ? Или как?
Если не трудно, черкни примерчик? Спасибо...
Здравствуйте A.Ustas, Вы писали:
A.U> Как воспользоваться (грамматно) функциями (членами класса) A.U>диалогового окна, вызвавшего модальное окно, из последнего ?
Здравствуйте A.Ustas, Вы писали:
A.U> Как воспользоваться (грамматно) функциями (членами класса) A.U>диалогового окна, вызвавшего модальное окно, из последнего ?
По-моему проще всего слать сообщения. Имею такой опыт, все работает на удивление красиво. Да и с точки зрения системы это "ровнее" будет.
Здравствуйте The Lex, Вы писали:
TL>Здравствуйте A.Ustas, Вы писали:
A.U>> Как воспользоваться (грамматно) функциями (членами класса) A.U>>диалогового окна, вызвавшего модальное окно, из последнего ?
TL>По-моему проще всего слать сообщения. Имею такой опыт, все работает на удивление красиво. Да и с точки зрения системы это "ровнее" будет.
А кому слать то? Все равно нэндл/указатель держать надо... Так уж тогда не грех и напрямую ф-ию вызвать — тем более что SendMessage все равно так и делает (ну, она правда еще и сихронизирует, но это непринципиально). Или я неправ?
Здравствуйте Sasparella, Вы писали:
TL>>По-моему проще всего слать сообщения. Имею такой опыт, все работает на удивление красиво. Да и с точки зрения системы это "ровнее" будет.
S>А кому слать то? Все равно нэндл/указатель держать надо... Так уж тогда не грех и напрямую ф-ию вызвать — тем более что SendMessage все равно так и делает (ну, она правда еще и сихронизирует, но это непринципиально). Или я неправ?
Это работает в варианте MDI — по нажатию кнопки в модальном диалоге выполняется команда меню приложения. Все работает слаженно и не надо задумываться ни над синхронизацией ни над специальными функциями. Хотя конечно же вполне возможно что это несколько частный вариант. Но я все же противник того, чтобы пользоваться объектом как попало.
Здравствуйте The Lex, Вы писали:
TL>>>По-моему проще всего слать сообщения. Имею такой опыт, все работает на удивление красиво. Да и с точки зрения системы это "ровнее" будет.
Имхо, имеет место смешивание двух различных сущностей — объекта "окно" и объекта класса C++, привешенного к нему. Если вопрошавший хотел воспользоваться всего-лишь функциональностью объекта класса, то такая возможность реализуется весьма просто:
Но если изначально предполагалось, что под вызовом функции скрывается инициирование некоей реакции самого окна (ведущей в итоге к вызову метода(ов) класса C++ ), то тут возможны проблемы. И проблемы будут связаны с модальностью дочернего окна. Его модальность означает, что родительское окно до конца его существования задисэйблено, и, следовательно, не качает очередь сообщений. Т.е. вся функциональность, проистекающая от вызова DispatchMessage(), TranslateAccelerator() будет недоступна. В то же время прямой вызов WindowProc посредством SendMessage будет работать и в этом случае.
TL>Все работает слаженно и не надо задумываться ни над синхронизацией ни над специальными функциями. Хотя конечно же вполне возможно что это несколько частный вариант.
И вот именно по этой причине задумываться необходимо.
TL>Но я все же противник того, чтобы пользоваться объектом как попало.