Отправляет email-рассылки с помощью сервиса Sendsay

Windows API

  Все выпуски  

Windows API


Информационный Канал Subscribe.Ru


Windows API. Уроки с сайта http://progs.biz

Рассылка № 10

Windows API. Урок 11. Функция MessageBox.
Windows API. Урок 12. Пример с MessageBox для закрытия программы.

Полные версии уроков (с картинками) можно найти по адресам:
Урок 11. Функция MessageBox.
Урок 12. Пример с MessageBox для закрытия программы.

Г. Бучек. ASP.NET. Учебный курс.
Г. Бучек. ASP.NET. Учебный курс.
Заказать на Озоне

Подробнее

Рассылки сайта progs.biz через subscribe.ru
Уроки по Flash MX
Уроки по Flash MX с сайта http://progs.biz. От создания отдельных роликов до применения языка ActionScript.

Windows API. Урок 11. Функция MessageBox

Функция MessageBox предназначена для вывода стандартного окна сообщений.

Эта функция имеет несколько параметров. Первый определает то, к какому окну принадлежит наш MessageBox. При этом доступ к этому окну будет закрыт до тех пор, пока мы не закроем MessageBox. Если первый параметр поставить в NULL, то MessageBox не будет принадлежать никакому окну (и мы сможем переключится на любое окно нашей программы).

Второй параметр функции MesageBox определяет, что за надпись появится в нем, третий же параметр определяет заголовок MessageBox'а.

Последний, четвертый параметр самый интересный. Он определяет много чего. Например, этим параметром вы можете задать, что за кнопки будут в MessageBox'е, какая из них будет кнопкой по умолчанию, что за картинка будет слева от сообщения, модальность окна.

Вот несколько констант, которые определяют, что за кнопки будут в MessageBox'е: MB_OK - только кнопка OK, MB_OKCANCEL - кнопки OK и Cancel, MB_YESNOCANCEL - кнопки Yes, No и Cancel. Разумеется, есть и другие константы.

Пример констант, определяющих значок в MessageBox'е: MB_ICONQUESTION - вопросительный знак, MB_ICONEXCLAMATION - восклицательный знак, MB_ICONERROR - красный круг с белым крестом.

А вот константы, задающие кнопку по умолчанию: MB_DEFBUTTON1 - первая кнопка, MB_DEFBUTTON2- вторая кнопка, MB_DEFBUTTON3 - третья кнопка.

И, наконец, последнее, что надо сказать о MessageBox'е. Это функция и это означает, что она возвращает значение. Это значение определяет, что за кнопку пользователь нажал - OK или Cancel или Yes или еще что-нибудь. Для этого существует целый ряд констант и все эти константы названы по одному принципу - их название начинается на ID, после которого идет надпись на кнопке (прописными буквами). Например, IDOK - для кнопки OK, IDCANCEL - для кнопки Cancel, IDIGNORE - для кнопки Ignore. Вот так, например, можно проверить, что нажата кнопка NO:

if(IDNO==MessageBox(hwnd, "Сохранить изменения?", "", MB_YESNO|MB_ICONQUESTION))
 ...

Обратите внимание, что при этом константы в четвертом параметре мы соединяем побитовым или (|).

Наверх

Windows API. Урок 12. Пример с MessageBox для закрытия программы

На этом уроке мы посмотрим, что мы должны добавить в нашу программу, для того, чтобы при закрытии появлялось стандартное окно сообщений с вопросом, надо ли из программы выходить. Если пользователь ответит Да, то программа закроется, если Нет, то не закроется.

Вот текст, который необходимо добавить в оконную процедуру:

...
switch (Message){
    case WM_CLOSE:
        if(IDOK==MessageBox(hwnd, "Выходим?", "", MB_OKCANCEL|MB_ICONQUESTION))
            SendMessage(hwnd, WM_DESTROY, NULL, NULL);
        break;
        ...

Как вы видите, тут мы добавили обработчик для сообщения Windows WM_CLOSE. Именно такое сообщение получит окно, когда пользователь нажимает на крестик в правом верхнем углу программы или нажимает Alt+F4. Если пользователь нажал на кнопку Да (Yes), то самому окну посылается сообщение WM_DESTROY. Это мы делаем посредством вызова API-функции SendMessage.

Наверх

PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка .NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru
Copyright Алексеев Игорь, 2002-2003
Copyright сайт progs.biz, 2002-2003
Распространение материалов без разрешения владельцев авторских прав запрещено.


BannerDrive.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное