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

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

17.03.2012, 19:35. Показов 3555. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru