![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Стыдно признаться-совсем не умею работать с сообщениями.Это AppWizard виноват.
![]() Вот писал прогу.У меня в SDI приложении есть форма на котороую я кинул ListCtrl.Мне надо обрабатывать сообщение о вертикальной прокрутке.Но в стардатном наборе Визарде его нет.Понимаю,что надо было создавать свой класс,производный от листа.Там почти все сообщения,которые для окон есть.Но переписывать не могу,очень большой код. Вот интересно можно было б как-то внести обработчик сообщения прокрутки ручками в карту сообщения. Не понимаю разницу (не знаю) между ON_NOTIFY,WM_NOTIFY,WM_NOTIFY_REFLECT,WM_COMMAND,ON_COMMAND и т.д. Как можно в своей фунции послать сообщение,указав правильный wParam и lParam;или перехватить там сообщение и обработать по-своему. Стал похож на собаку Павлова.Помогите,кому не лень.Или ссылку дайте хорошую.В МСДН пробовал залесть,голова кругом -инфа раскинута по всему хелпу.Устал. А я тоже чем-то пригожусь. ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Gorbatovsky |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 4.9.2003 Где: Киев Репутация: нет Всего: нет |
Общие элементы управления Win32 отправляют большинство уведомлений в виде сообщений WM_NOTIFY. Стандартные элементы управления Windows, используемые также в 16-разрадной Windows, отправляют большинство уведомлений в виде сообщений WM_COMMAND.
Например в карту сообщений я добавил еще один обработчик ON_NOTIFY_EX BEGIN_MESSAGE_MAP(C2DPointBox, CDialog) //{{AFX_MSG_MAP(C2DPointBox) .. ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnNeedToolTipText) //}}AFX_MSG_MAP END_MESSAGE_MAP() В следующем примере я обрабатываю сообщение ON_NOTIFY_REFLECT BEGIN_MESSAGE_MAP(CDragListCtrl, CListCtrl) //{{AFX_MSG_MAP(CDragListCtrl) ON_NOTIFY_REFLECT(LVN_BEGINDRAG, OnBegindrag) //}}AFX_MSG_MAP END_MESSAGE_MAP() Посмотреть на сообщения отправляемые в программе можно утилитой Spy++ Запускаю свою программу потом Spy++. Нахожу в нем интересующее меня окно. Например ListBox. При помощи контекстного меню открываю окно с сообщениями для ListBox. Дальше двигаю слайдеры и вижу, в окне сообщения. Там их очень много. Можно установить фильтр. Например нас интересуют WM_VSCROLL WM_MOUSEMOVE. Теперь нам нужно в классе ListBox обработать эти сообщения. Эти можно добавить при помощи Визарда |
|||
|
||||
Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 2 Всего: 62 |
Да я без нее ни куда ![]()
В чем различия? А как можно отправить сообщение LVN_BEGINDRAG,из своей функции? -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |