С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517

MFC : не срабатывает обработчик нажатия кнопок

17.03.2012, 19:35. Показов 3491. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Начал изучение MFC по одной из программ. У автора следует пример и скриншот где срабатывает обработка сообщения нажатия кнопок (AfxMessageBox срабатывает), у меня же всё компилируется, но при нажатии кнопок AfxMessageBox не появляется, что значит что я как-то не правильно видать объявил карту сообщений или ещё чего.
Весь проект набран вручную без использования мастеров

Код
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//Step1.cpp
 
#include "afxwin.h" //MFC основные и стандартные компоненты
 
#define IDC_MYBUTTON 100 //id кнопки
#define IDC_MYEDIT 102 //id поля редактирования
 
class CMainWnd: public CFrameWnd
{
public:
    CMainWnd(); //Конструктор по умолчанию
    afx_msg void OnLButtonDblClk(UINT, CPoint); //виртуальная процедура ответа на лкм
    afx_msg void OnRButtonDblClk(UINT, CPoint); //виртуальная процедура ответа на пкм
    afx_msg void OnKeyDown(UINT, UINT, UINT); //виртуальная процедура ответа на клавишу
    ~CMainWnd();//деструктор
private:
    CStatic* MyStatic; //указатель на объект надпись
    CButton* MyButton; 
    CEdit* MyEdit;
    DECLARE_MESSAGE_MAP();//таблица откликов
};
 
BEGIN_MESSAGE_MAP(CMainWnd, CFrameWnd)//таблица откликов на сообщения
    ON_WM_LBUTTONDBLCLK() //реакция на нажите лкм
    ON_WM_RBUTTONDBLCLK() //реакция на нажатие пкм
    ON_WM_KEYDOWN() //реакция на нажите клавиши
END_MESSAGE_MAP()
 
void CMainWnd::OnKeyDown(UINT,UINT,UINT)
{
    AfxMessageBox(" Key Button Down ");
}
 
void CMainWnd::OnRButtonDblClk(UINT, CPoint)
{
    MessageBox(" Right Button Click ");
}
 
void CMainWnd::OnLButtonDblClk(UINT, CPoint)
{
    AfxMessageBox(" Left Button Click ");
}
 
 
 
 
CMainWnd::CMainWnd()
{
    Create(NULL, "Step3", WS_OVERLAPPEDWINDOW, rectDefault, NULL, NULL); //Создать окно программы
 
    MyStatic=new CStatic();
    if(MyStatic!=NULL)
        MyStatic->Create("MyStatic", WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(10,10,100,50), this);
 
    MyButton=new CButton();
    if(MyButton!=NULL)
        MyButton->Create("MyButton",WS_CHILD|WS_VISIBLE|SS_CENTER,CRect(120,10,220,50),this, IDC_MYBUTTON);
 
    MyEdit=new CEdit();
    if(MyEdit!=NULL)
        MyEdit->Create(WS_CHILD|WS_VISIBLE|WS_BORDER,CRect(240,10,340,50), this, IDC_MYEDIT);
}
 
CMainWnd::~CMainWnd()
{
    if(MyStatic!=NULL) delete MyStatic;
    if(MyButton!=NULL) delete MyButton;
    if(MyEdit!=NULL) delete MyEdit;
}
 
class CMyApp:public CWinApp
{
public:
    //CMyApp(); //конструктор по умолчанию
    virtual BOOL InitInstance(); //стандартная инициализация
};
 
//CMyApp::CMyApp() //конструктор главного класса приложения
//{}
 
BOOL CMyApp::InitInstance()//стандартная инициализация
{
    m_pMainWnd=new CMainWnd();//создать класс окна
    ASSERT(m_pMainWnd); //проверить его правильность
    m_pMainWnd->ShowWindow(SW_SHOW);//показать окно
    m_pMainWnd->UpdateWindow();//обновить окно
    return TRUE; //Вернуть что всё нормально
};
 
CMyApp theApp; //запуск приложения
Добавлено через 34 минуты
Уже всё работает, понятия не имею почему изначально события не обрабатывались, может фокус что перелавливало так как я ещё пользуюсь DeskPins.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.03.2012, 19:35
Ответы с готовыми решениями:

Обработчик кнопок и KeyPrewiev в mfc
Необходимо в диалоговом окне (только в mfc) обрабатывать все нажатые кнопки в любом месте. Собственно создал mfc проект на основе...

Не срабатывает обработчик нажатия кнопки
<ul> <li><button id="about_me" onckick="change()">About me</button></li> <li><button>Skills</button></li> ...

Не срабатывает обработчик нажатия на кнопку панели инструментов
На панели инструментов есть ряд кнопок ToolButton со стилем tbsDropDown. По нажатию на кнопку запрограммировано определенное действие....

1
17.03.2012, 22:21

Не по теме:

Gepar, смени тип проекта с SDI(MDI) на Dialog based а лучше закинь сюда весь проект

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.03.2012, 22:21
Помогаю со студенческими работами здесь

один обработчик нажатия для всех кнопок
На панель динамически добавляю какое-то количество кнопок ,с похожим функционалом. Есть один и тот же обработчик нажатия для всех этих...

Обработчик событий нажатия кнопок мыши внутри цикла
Товарищи, подскажите. Уже весь мозг сломал. Проблема в следующем: я использую модуль graphABC, который с помощью цикла (for, repeat,...

Обработчик событий нажатия кнопок мыши внутри цикла. Не работает
Товарищи, подскажите. Уже весь мозг сломал. Проблема в следующем: я использую модуль graphABC, который с помощью цикла (for, repeat,...

Создать массив кнопок, для каждой кнопок будет одинаковый обработчик
Всем привет! Нужна помощь в реализации такой задачи. Нужно создать массив кнопок, для каждой кнопок будет одинаковый обработчик...

Почему когда я вешаю обработчик события на ячейку и этот обработчик срабатывает, то оказывается, он сработал совершенно для ДРУГОЙ ячейки?
Да, почему? Скропаем DataGridView; кинем на форму listBox2 и listBox1 и напишем такой обработчик для события EditingControlShowing...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru