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

Windows API

  Все выпуски  

Windows API


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

Windows API. Рассылки сайта progs.biz
Рассылка № 20
 
Начало > WinAPI > Основы > Урок 22

С. Гайдуков. OpenGL. Профессиональное программирование трехмерной графики на C++.
С. Гайдуков. OpenGL. Профессиональное программирование трехмерной графики на C++
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 22.

Windows API
Урок 22. Несколько групп радиокнопок

На прошлом уроке было показано, как создать группу из радиокнопок. При этом радиокнопки работали как группа автоматически - если пользователь выбирал одну из кнопок, то она автоматически отвечалась (т. е. получала точку), а остальные радиокнопки автоматически показывались невыделенные (ьез точки внутри).

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

Объявление самих кнопок в нашем коде будет почти такое же, как и на прошлом уроке:

    CreateWindow("button", "Option 1",
        WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,
        10, 10, 80, 30, hwnd, (HMENU)10001, hInstance, NULL);
    CreateWindow("button", "Option 2",
        WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,
        10, 30, 80, 30, hwnd, (HMENU)10002, hInstance, NULL);
    CreateWindow("button", "Option 3",
        WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,
        10, 70, 80, 30, hwnd, (HMENU)10003, hInstance, NULL);
    CreateWindow("button", "Option 4",
        WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,
        10, 90, 80, 30, hwnd, (HMENU)10004, hInstance, NULL);
        ...

Обратите внимание, что в отличие от прошлого урока радиокнопки имеют стиль BS_RADIOBUTTON вместо BS_AUTORADIOBUTTON. Кроме того мы сделали для наглядности 4 радиокнопки, а не 3, как это было в прошлом уроке.

Теперь код по обработке щелчка по радиокнопкам:

...
switch (Message){
    case WM_COMMAND:
        // Проверяем, не щелкнули ли на первой группе радиокнопок.
        if(10001<= LOWORD(wparam) && LOWORD(wparam)<=10002)
        {
            // Отмечаем кпопку из первой группы.
            CheckRadioButton(hwnd, 10001, 10002, LOWORD(wparam));
        }
        // Проверяем, не щелкнули ли на второй группе радиокнопок.
        if(10003<= LOWORD(wparam) && LOWORD(wparam)<=10004)
        {
            // Отмечаем кпопку из второй группы.
            CheckRadioButton(hwnd, 10003, 10004, LOWORD(wparam));
        }
        break;
        ...

Для наших целей тут мы используем функцию CheckRadioButton. Первый параметр у нее - это HWND нашего окна (это ясно), второй и третий - идентификаторы первой и последней кнопок в нашей группе, четвертый параметр - идентификатор радиокнопки, которая станет выделенной.

После запуска программы мы получим 2 независимые группы радиокнопок (в каждой из них будет по 2 кнопки).

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX new!
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


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


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2004 сайт progs.biz
© 2002-2004 Алексеев Игорь

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.winapilessons
Отписаться

В избранное