Member 13866664 Ответов: 2

SDI(single document interface) MFC VC++ 2015


Я добавил два диалога в SDI.
Диалог 1: Позиция
Диалог 2: Скорость
Теперь я хочу добавить переменную или функцию. Как и где добавить переменную или функцию, доступную в обоих диалоговых окнах. что же делать???

Что я уже пробовал:

Я добавил два диалога в SDI. Теперь я хочу файл if.
Диалог 1: Позиция
Диалог 2: Скорость
Как добавить переменную или функцию, которая доступна в обоих диалоговых окнах. что же делать???

Richard MacCutchan

Чего именно вы пытаетесь достичь? Вы можете добавить переменную в конструктор или любой метод класса CDialog. Добавление одной и той же функции к обоим было бы немного больше работы.

2 Ответов

Рейтинг:
2

CPallini

Предполагая, что диалоги имеют одно и то же родительское окно, любой public метод такого родительского окна доступен обоим.
Например, предположим, что родительское окно (скажем MainWindow) реализует публичный метод (скажем, getMass()), то в любом из диалогов вы можете написать:

MainWindow *pmw = reinterpret_cast<MainWindow *> (GetParent());
int mass = pmw->getMass();


Рейтинг:
17

KarstenK

Вам нужны некоторые общие данные, возможно, это как член постоянного объекта класса (например, приложение или документ) или как глобальный объект. Вы можете достичь этого с помощью некоторой архитектуры PostMessage и отправить данные в виде параметров или в виде объекта глобальной модели, доступ к которому можно получить с помощью указателей на оба диалоговых окна.