Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2012, 18:36   #1
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос Выходить при отмены

Вот я написал код:

Код:
case WM_CLOSE:
      MessageBox(hwnd, "Вы уверины что хотите выйти", NULL, MB_OKCANCEL); 
      DestroyWindow(hwnd);
      break;
как сделать, что бы при нажатие на отмену не выходило?
Sylar9 вне форума Ответить с цитированием
Старый 30.04.2012, 18:41   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

MessageBox это функция, возвращает нажатую кнопку, внезапно да?
справку читать нужно.
там кстати даже пример есть.
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
и все описано.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.04.2012, 18:54   #3
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
MessageBox это функция, возвращает нажатую кнопку, внезапно да?
справку читать нужно.
там кстати даже пример есть.
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
и все описано.
я видел, но я не фига не понял, можешь показать на примере

Код:
MessageBox(NULL, "Вы уверины что хотите выйти", NULL, MB_OKCANCEL);
	  if (IDOK)
	  {
	  DestroyWindow(hwnd);
	  break;
	  }
Не работает чего-то ?

Последний раз редактировалось Stilet; 30.04.2012 в 21:43.
Sylar9 вне форума Ответить с цитированием
Старый 30.04.2012, 19:11   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы что анализируете?
вы не видите чтоли что там анализируется ответ от функции?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.04.2012, 20:05   #5
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вы что анализируете?
вы не видите чтоли что там анализируется ответ от функции?
я вас не пойму, что в скобках за тип данных
Код:
switch (msgboxID)
Sylar9 вне форума Ответить с цитированием
Старый 30.04.2012, 20:33   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
    int msgboxID = MessageBox(
        NULL,
        (LPCWSTR)L"Resource not available\nDo you want to try again?",
        (LPCWSTR)L"Account Details",
        MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2
    );
сами найдете?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.04.2012, 22:28   #7
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:
    int msgboxID = MessageBox(
        NULL,
        (LPCWSTR)L"Resource not available\nDo you want to try again?",
        (LPCWSTR)L"Account Details",
        MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2
    );
сами найдете?
В чем ошибка
Код:
 int res =  MessageBox(NULL, "Вы уверины что хотите выйти", NULL, MB_OKCANCEL);
	  if(res ==IDOK){DestroyWindow(hwnd);}
		else if(res == IDCLOSE) MessageBox(0,"Не хотите как хотите","",MB_OK);
	  break;

1>------ Построение начато: проект: Del, Конфигурация: Debug Win32 ------
1>Построение начато 30.04.2012 21:21:30.
1>InitializeBuildStatus:
1> Обращение к "Debug\Del.unsuccessfulbuild".
1>ClCompile:
1> Del.cpp
1>d:\my programs\winapi\del\del\del.cpp(83) : error C2360: пропуск инициализации "res" из-за метки "case"
1> d:\my programs\winapi\del\del\del.cpp(77) : см. объявление "res"
1>d:\my programs\winapi\del\del\del.cpp(87) : error C2361: пропуск инициализации "res" из-за метки "default"
1> d:\my programs\winapi\del\del\del.cpp(77) : см. объявление "res"
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.48
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Sylar9 вне форума Ответить с цитированием
Старый 30.04.2012, 22:44   #8
stdio
Форумчанин
 
Аватар для stdio
 
Регистрация: 14.02.2012
Сообщений: 105
По умолчанию

в программе которую я сейчас пишу выхожу так
Код:
		if(MessageBox(NULL,L"Вы действительно хотите прервать установку?",L"Отмена установки",MB_OKCANCEL) == IDOK)
		{
			PostQuitMessage(0); // ВЫХОД
		}
stdio вне форума Ответить с цитированием
Старый 30.04.2012, 23:37   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если внутри case-ветки ходите задать новые переменные, то нужно начать новый блок:
Код:
{
    int res =  MessageBox(NULL, "Вы уверины что хотите выйти", NULL, MB_OKCANCEL);
    if(res ==IDOK){DestroyWindow(hwnd);}
        else MessageBox(0,"Не хотите как хотите","",MB_OK);
    break;
}
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить функцию отмены? shevel97 Помощь студентам 4 22.02.2011 03:02
Выходить при запуске! WizarD.89 Microsoft Office Access 6 06.12.2010 20:43
Реализация отмены?!?!?!? Xdron Общие вопросы Delphi 6 28.04.2010 18:15
Обработчик Отмены Progs1024 Работа с сетью в Delphi 1 13.12.2009 17:53
точка не должна выходить за пределы треугольника Брутальный М. Паскаль, Turbo Pascal, PascalABC.NET 8 23.12.2008 07:39