Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
2 / 2 / 2
Регистрация: 03.04.2017
Сообщений: 6
1

Как изменить код, выполняющийся при нажатии на крестик?

07.04.2017, 00:38. Показов 1577. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Или как этот самый крестик убрать?

Дело в том, что в программе есть такая строка:

C++
1
atexit(OnQuit);
И в
Код
OnQuit
происходят всякие непотребства.

Если закрывать программу через кнопку:

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
WinMain() {
                    switch (message) {
    case WM_LBUTTONUP:
    case WM_COMMAND:
        messageButton(wParam);
}
}
 
void messageButton(WPARAM wParam) {
    if (LOWORD(wParam) == 1002
    {
        exit(0);
    }
}
 
void Draw(HWND hWnd, HWND button1, HWND button2, HWND button3) {
    button1 = CreateWindow(
        WC_BUTTONW, // Класс
        L"Закрыть", // Название
        WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, // Стили
        10, // Х
        330, // У
        210, // Ширина
        25, // Высота
        hWnd, // ИД родителя
        (HMENU)1002, // Сообщение, отправляемое кнопкой
        (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE), // ХЗ
        NULL); // ХЗ
}
То всё нормально, код
Код
OnQuit
выполняется. Но если закрывать программу нажав на крестик, программа просто закрывается, не выполнив код
Код
OnQuit
. Как так?

Я вижу 3 выхода:

1) Как-то поменять код, выполняющийся после нажатия крестика
2) Просто убрать крестик. Думаю, этот вариант по-легче будет. При условии, что это возможно.

Подскажите, пожалуйста, как реализовать хотя бы один из этих вариантов?

Добавлено через 24 минуты
Я понял, в чём была проблема, извиняйте.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2017, 00:38
Ответы с готовыми решениями:

Как сделать при нажатии на context menu script, выполняется код timer.Start(); и при повторном нажатии выполняет код?
как сделать при нажатии на context menu script , выполняется код timer.Start(); и при повторном...

Как сделать чтобы при нажатии на красный крестик программа не закрывалась а открывала нужную мне форму?
Как сделать чтобы при нажатии на красный крестик программа не закрывалась а открывала нужную мне...

как сделать так чтобы при нажатии на крестик или на кнопку Завершить выбивало подтверждающих закрытия
как сделать так чтобы при нажатии на крестик или на кнопку Завершить выбивало подтверждающих...

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

1
1 / 1 / 2
Регистрация: 02.02.2015
Сообщений: 42
07.04.2017, 01:00 2
Отлавливай WM_CLOSE и пиши на него код
1
07.04.2017, 01:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.04.2017, 01:00
Помогаю со студенческими работами здесь

Запрет на закрытие окна при нажатии на крестик
Можно как то запретить закрытие окна путем нажатия на крестик? Вообще в идеале мне нужно по...

[WPF] При нажатии на крестик окно не закрывается, а остается в фоновом режиме
Пишу игру на c# в wpf. В форме есть кнопки для закрытия программы, если нажать на них, то программа...

Как вызват код, выполняющийся до старта первой Activity?
Добрый день! Столкнулся с задачей, не знаю как её решить лучше. Хочу что бы некоторый код...

Выполнять код при закрытие программы на крестик
При закрытие программы на крестик нужно выполнять сохранение настроек программы. Подскажите...

Как изменить bg при нажатии на кнопку?
Такая проблема. Есть кнопки категорий, у которых есть своё значение: <div class="categories"> ...

"Закрыть?" при нажатии на крестик, вызов функции
Привет народ. На сегодня от меня вопросик простенький (для знающих, разумеется. Я же новичек)....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru