Как общаться между диалогами? - PullRequest
1 голос
/ 04 марта 2010

Я работаю над небольшим приложением MFC ... так как я новичок в MFC, я не знаком со всеми пользовательскими элементами управления и классами ... в любом случае, мой вопрос "как общаться между двумя диалоговыми окнами" .. Обычно в C # будет панель, чтобы мы могли скрывать и хранить данные в формах соответственно, но я не уверен, как мы можем сделать это в Mfc. На самом деле я сделал это с помощью PropertySheet, добавив страницы свойств, в связи с чем у меня было некоторое ограничение ... Так что я хотел бы знать, есть ли другой способ, которым я могу достичь этого. Если кто-нибудь знает об этом, пожалуйста, помогите мне ....

Ответы [ 2 ]

2 голосов
/ 04 марта 2010

Вы создаете приложение типа Dialog или SDI / MDI?

Если диалоговые окна относятся к двум разным процессам, то вы можете использовать зарегистрированные сообщения для межпроцессного взаимодействия: http://msdn.microsoft.com/en-us/library/ms644947%28VS.85%29.aspx.

Если диалоговые окна взяты из приложения SDI или MDI, в коде, который Visual Studio генерирует для вас, будет класс, производный от CWinApp или CWinAppEx: http://msdn.microsoft.com/en-us/library/362kaah4%28VS.80%29.aspx. Также будет класс, производный от CFrameWnd или CFrameWndEx (скорее всего, называется CMainFrame): http://msdn.microsoft.com/en-us/library/za93adby%28VS.80%29.aspx.

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

Если оба диалоговых окна взяты из приложения Dialog, вы можете использовать производный класс CDialog в приложении, как если бы вы использовали панель C #.

Если диалогам просто нужно вызывать метод друг в друге для обновления данных или чего-то в этом роде (и они из одного и того же приложения), вы можете просто передать их указатели друг другу.

0 голосов
/ 04 марта 2010

Один из самых простых способов - передать ссылку между формами, которые необходимо сообщить. Например, у вас может быть «основная» форма, которая создает две «дочерние» формы и передает переменную в каждую форму (при реализации), которая ссылается на другую форму.

...