Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
 Аватар для bretba
63 / 58 / 13
Регистрация: 24.07.2011
Сообщений: 343

Как запихнуть события сообщений windows в класс?

04.08.2011, 17:48. Показов 3352. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем.К примеру у меня есть сообщение WM_MOUSEMOVE и я хочу написать к нему событие OnMouseMove.

Как это делается стандартно:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void OnMouseMove(HWND hwnd);  //переопределяем
...
...
...
LRESULT CALLBACK  WndProc(HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM lParam)
{
...
switch (uMsg)
{
HANDLE_MSG(hwnd,WM_MOUSEMOVE,OnMouseMove);
...
case WM_DESTROY:
PostQuitMessage(0);
break;
 
default:
return(DefWindowProc(hWnd,uMsg,wParam,lParam)) ; 
}
}
void OnMouseMove(HWND hwnd)
{
//реализация
...
}
А я хочу что-то типа такого:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class MyClass
{
public:
bool OnMouseMove(HWND hwnd);
...
...
};
bool MyClass::OnMouseMove(HWND hwnd)
{
//реализация
}
...
...
...
LRESULT CALLBACK  WndProc(HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM lParam)
{
MyClass MyObject;
...
switch(uMsg)
{
case WM_PAINT:
PAINTSTRUCT ps;
HDC dc=BeginPaint(hwnd,&ps);
if (MyObject.OnMouseMove=true)
TextOut(dc,10,10,L"МЫШКОЙ ШЕВЕЛЬНУЛИ",10);
else
TextOut(dc,10,10,L"МЫШКОЙ НЕ ШЕВЕЛЬНУЛИ",10);
EndPaint(hwnd,&ps);
break;
...
...
case WM_DESTROY:
PostQuitMessage(0);
break;
 
default:
return(DefWindowProc(hWnd,uMsg,wParam,lParam)) ; 
}
}

Тоесть я не переопределяю функцию,она у меня внутри класса и не пишу HANDLE_MSG(hwnd,WM_MOUSEMOVE,OnMouseMove );

Реально так сделать как-нибудь?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.08.2011, 17:48
Ответы с готовыми решениями:

WTL как Сделать Мультиселект? Пересылка сообщений Обработчик события нажатия клавиши
Hi ALL! Сабж в том, что я ни разу в глаза не видел WTL и вообще не вкурю откуда у него ноги растут! Комрады выручайте! ...

Как запихнуть массив строк в класс?
Есть класс, один из методов который использует массив строк: char* pszName = { "Anton", "Alex" }; Сейчас это вне...

подскажите пожалуйста как запихнуть в класс конструктор
по лабораторной задание: создать программу которая решает заданный интеграл методом трапеций...тра-ля-ля...создавать с учетом...

20
 Аватар для soft.creator
106 / 106 / 11
Регистрация: 17.10.2010
Сообщений: 283
06.08.2011, 20:44
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от alex_x_x Посмотреть сообщение
ну это уже считай паттерн template method
Он самый
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.08.2011, 20:44

Как поток чтения (или записи) запихнуть в класс?
Здравствуйте!!! Ребят, подскажите пожалуйста, собственно, как запихнуть в класс поток ifstream? Че-то я озадачен оказался *-) Без...

Как запихнуть запихнуть объект Me в Long?
Как запихнуть Me в Long, а потом достать его? Спасибо?

Как настроить показ всплывающих сообщений в зависимости от события?
Доброго времени суток друзья. Использую модуль всплывающих сообщений Noty (http://ned.im/noty/). Вернее хочу научиться использовать. ...

Перенос массива из класса события в другой класс события
есть вот такой код: private void button_follow_Click(object sender, EventArgs e) { if...

Как реализовать класс с возможностью кидать события?
Здравствуйте! На экран вывожу сетку из ячеек, которые описываются классом Cell и визуализируются посредством g.fillRect на JPanel. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru