Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [ActiveX] WM_USER & ON_MESSAGE, обработка событий 
:(
    Опции темы
Windigo
  Дата 25.8.2004, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет всем!
Ситуация такая: есть страница свойств ActiveX компонента (IDD_MY_PROPPAGE), на ней размещен MFCGridCtrl (MyGridCtrl) . По двойному клику на MyGridCtrl, должен выставляться SetModifiedFlag() на странице;

Делаю так
Код

void CMyGridCtrl::OnLButtonDblClk(UINT nFlags, CPoint point)
{
CWnd* ppage = GetDlgItem(IDD_MY_PROPPAGE);
::SendMessage((HWND)ppage,WM_USER+200,0,0);
}
//////////////////////////////////////////////////////////////////////////////
ON_MESSAGE(WM_USER+200,InternalMsg)

//////////////////////////////////////////////////////////////////////////////
afx_msg LRESULT InternalMsg(WPARAM wp,LPARAM lp);

///////////////////////////////////////////////////////////////////////////////
void CMyPropPage::InternalMsg(WPARAM wp,LPARAM lp)
{
SetModifiedFlag();
return true;
}


в InternalMsg не попадаю , где я неправ?
Заранее, спасибо


PM MAIL   Вверх
Олег М
Дата 25.8.2004, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

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



А сообщение приходит в ppage? Кстати, ppage у тебя как объявлен? Если как указатель, то надо (HWND)(*ppage) или, лучше ppage->GetSafeHwnd, или ppage->SendMessage

Это сообщение отредактировал(а) Олег М - 25.8.2004, 14:55
PM MAIL ICQ   Вверх
Windigo
Дата 25.8.2004, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ppage объявлен так:
CWnd* ppage (то есть какуказатель)

(HWND)(*ppage) - в ::SendMessage заменил, но не помогло, поэтому скорее всего сообщение так и не доходит..

А если заменяю
ppage->SendMessage(WM_USER+200,1,1);
прога вылетает с ошибкой чтения памяти

PM MAIL   Вверх
Олег М
Дата 25.8.2004, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 10.6.2004
Где: Москва

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



Цитата(Windigo @ 25.8.2004, 18:20)
CWnd* ppage (то есть какуказатель)

А чему он утебя равен? У тебя сначала неправильно было, к HWND нельзя так преобразовывть, теперь исправил, надеюсь. Проверь pppage->m_hWnd.
Если ppage нормальный
Код

_AFXWIN_INLINE LRESULT CWnd::SendMessage(UINT message, WPARAM wParam, LPARAM lParam)
{
ASSERT(::IsWindow(m_hWnd)); //Скорее всего у тебя здесь вылетает
return ::SendMessage(m_hWnd, message, wParam, lParam);
}

PM MAIL ICQ   Вверх
Windigo
Дата 25.8.2004, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо - так помогло smile.gif
CWnd* ppage = this->GetParent();
ppage->SendMessage(WM_USER+200,1,1);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




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


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

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