![]() |
|
![]() ![]() ![]() |
|
mishka20 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 24.3.2006 Репутация: нет Всего: нет |
Я создал не стандартный элемент, на базе класса, унаследованного от CWnd. Мой элемент содержит 16 кнопок. Припомощи функции Create разместил его в главном окне. Мне нужно, чтобы при нажатии на одну из кнопок элемента, от него посылалось сообщение главному окну.
Пишу в функции обработчика одной из кнопок:
Для класса главного окна создал карту сообщений:
Это почему-то не работает.... Что не так? Подкажите... |
||||
|
|||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
AfxGetMainWnd - это родительское окно. Это оно посылает сообщение а не контрол.
может вот так из контрола:
Это сообщение отредактировал(а) Albor - 30.4.2009, 13:58 |
|||
|
||||
mishka20 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 24.3.2006 Репутация: нет Всего: нет |
Не Помогло.... =((((
Люди, ну как из нестандартного элемента, дочернего от CWnd, отправить сообщение в родительское окно и принятьего там???? Можно в общих чертах объснить... Я уже мозг сломал. ![]() Мжет быть надо в параметры lParam и wParam что-нибудь вписать? Или может от конкретных элементов должны исходить конкретные сообщения и деть так как я делаю нелзя? Как тогда надо? |
|||
|
||||
Albor |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
В чём проблема? Поставь, испытай. wParam в младшем слове должен содержать ID контрола. Можно воспользоваться утилитой Spy, просмотрев где теряется данное сообщение, с какими параметрами оно поступает и т.д. |
|||
|
||||
mishka20 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 24.3.2006 Репутация: нет Всего: нет |
Вписал ID контрола. Утилита, как я понял, только системные сообщения показывает. Снова ступор.... ((
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
![]() Послать нужно сообщение, а BN_CLICKED - это код уведомления, причем, кажется равный нулю. Ну и что ты посылаешь? Нечто вроде телепатического сигнала. Хоть попробуй разобраться, что и как происходит в системе. Посылать нужно команду: WM_COMMAND, с кодом уведомления BN_CLICKED. Как сформировать сообщение - сам разбирайся с помощью MSDN, крепче запомнишь. Обработчик в карте сообщений у тебя правильный, но можно короче: ON_BN_CLICKED или вообще ON_COMMAND. Стандартный, нестандартный контрол - глубоко фиолетово, принцип общий. Лучше всего прочитать в MSDN техническую статью про прохождение сообщений и диспетчеризацию команд. Кроме того, на rsdn вроде была хорошая статья на русском об этом. Когда в голове на эту тему проясниться, все станет просто. -------------------- ... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |