Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SendMessage() или обиен данными между класами... 
V
    Опции темы
rokky05
  Дата 7.4.2008, 12:41 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2008

Репутация: нет
Всего: нет



У меня есть 2 класа (условно А и В), в класе А создан екзамляр класа В, но мне нужно сделать так чтоби когда произошли изменения тоесть юзер кликнул на кнопку в класе В, отобразилса некий текст в ЕдитБоксе класа А, думаю можно сделать с помощю SendMessage(), но я с сообщениями никогда не работал и ничево у меня не получаетса :((( Может кто подскажет решения???
PM MAIL   Вверх
Andrey44
Дата 7.4.2008, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



в хедере :
Код

#define MWM_MYMESSAGE WM_APP+1



 в классе 
LRESULT OnMyMessage(WPARAM, LPARAM);


в спп файле
Код

BEGIN_MESSAGE_MAP(CAudVidDlg, CDialog)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    //}}AFX_MSG_MAP
    ON_WM_ERASEBKGND()
    ON_MESSAGE(MWM_MYMESSAGE, OnMyMessage)

END_MESSAGE_MAP()


LRESULT А::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
    MessageBox(0);
}


где-то в В классе
Код

::SendMessage(GetParent()->GetSafeHwnd(), MWM_MYMESSAGE, 0, 0);// или если надо передавай параметры WPARAM wParam, LPARAM lParam



--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
rokky05
Дата 7.4.2008, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2008

Репутация: нет
Всего: нет



Цитата(Andrey44 @ 7.4.2008,  13:06)
в хедере :
Код

#define MWM_MYMESSAGE WM_APP+1



 в классе 
LRESULT OnMyMessage(WPARAM, LPARAM);


в спп файле
Код

BEGIN_MESSAGE_MAP(CAudVidDlg, CDialog)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    //}}AFX_MSG_MAP
    ON_WM_ERASEBKGND()
    ON_MESSAGE(MWM_MYMESSAGE, OnMyMessage)

END_MESSAGE_MAP()


LRESULT А::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
    MessageBox(0);
}


где-то в В классе
Код

::SendMessage(GetParent()->GetSafeHwnd(), MWM_MYMESSAGE, 0, 0);// или если надо передавай параметры WPARAM wParam, LPARAM lParam

Не работает :( зделал так как ты писал,  ничево не происходит...
PM MAIL   Вверх
Andrey44
Дата 7.4.2008, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



Ты вообще какому окну собрался слать сообщения? Главному твоего приложения? Или созданному потом.


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
rokky05
Дата 7.4.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2008

Репутация: нет
Всего: нет



Главному окну мого приложения...
PM MAIL   Вверх
Andrey44
Дата 7.4.2008, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



При создании В.Create(....., this); ----------this передаешь?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
rokky05
Дата 7.4.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2008

Репутация: нет
Всего: нет



Цитата(Andrey44 @ 7.4.2008,  13:51)
При создании В.Create(....., this); ----------this передаешь?

в класе А делаю так:

B *pChild = pChild new B;
PM MAIL   Вверх
Andrey44
Дата 7.4.2008, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



Для того, что-бы послать сообщение 
какому либо окну - нужно знать его HWND.


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
rokky05
Дата 7.4.2008, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2008

Репутация: нет
Всего: нет



Цитата(Andrey44 @ 7.4.2008,  14:15)
Для того, что-бы послать сообщение 
какому либо окну - нужно знать его HWND.

GetParent()->GetSafeHwnd() разве недостаточно?
PM MAIL   Вверх
Andrey44
Дата 7.4.2008, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



А ты уверен, что у В родителем является А?
Ты где нибудь указываешь это?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
rokky05
Дата 7.4.2008, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2008

Репутация: нет
Всего: нет



Цитата(Andrey44 @ 7.4.2008,  14:46)
А ты уверен, что у В родителем является А?
Ты где нибудь указываешь это?

но я же пишу в А так: B *pChild = pChild new B; етого мало?
PM MAIL   Вверх
Andrey44
Дата 7.4.2008, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 12
Всего: 26



Конечно мало.

Посмотри в дебагере что у тебя возвращает GetParent()->GetSafeHwnd()


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
rokky05
Дата 7.4.2008, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 3.3.2008

Репутация: нет
Всего: нет



Цитата(Andrey44 @ 7.4.2008,  15:15)
Конечно мало.

Посмотри в дебагере что у тебя возвращает GetParent()->GetSafeHwnd()

да ти прав, передал через указатель и всьо сработало smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0613 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.