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

Windows API

  Все выпуски  

Windows API


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

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

Г. Шилдт. Самоучитель C++.
Г. Шилдт. Самоучитель C++
Заказать на Озоне


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

Windows API
Урок 21. Работаем с радиокнопками

Радиокнопки создаются подобно обычным кнопкам - для этого мы должны вызвать метод CreateWindows указав в нужном мeсте стиль BS_AUTORADIOBUTTON (или BS_RADIOBUTTON - но он хуже, так как вам придется самим писать код, который будет ставить точку внутри выбранной радиокнопки). То, что радиокнопки делаюся точно также, как и обычные кнопки, не должно нас удивлять: их класс - это класс "button".

Вот код, добавляющий три радиокнопки (обартите внимание, что они автоматически образуют группу):

    ...
    // Создание 3-х радиокнопок.
    CreateWindow("button", "Option 1",
        WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON,
        10, 10, 80, 30, hwnd, (HMENU)10001, hInstance, NULL);
    CreateWindow("button", "Option 2",
        WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON,
        10, 30, 80, 30, hwnd, (HMENU)10002, hInstance, NULL);
    CreateWindow("button", "Option 3",
        WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON,
        10, 50, 80, 30, hwnd, (HMENU)10003, hInstance, NULL);
        ...

Добавить его надо в WinMain после вызова CreateWindow для создания главного окна.

Теперь надо делать некоторые дейстия при выборе той или иной радиокнопки из нашей группы. Для этого мы должны добавить обработчик для WM_COMMAND в case для оконной процедуры. Например, следующий код будет менять заголовок окна в зависимости от того, что за радиокнопку пользователь выбрал:

LONG WINAPI WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam)
{
    switch (Message){
    case WM_COMMAND:
        // Если мы нажали на 1-й радиокнопке.
        if(LOWORD(wparam)==10001)
            SetWindowText(hwnd, "Option 1");
        // Если мы нажали на 2-й радиокнопке.
        if(LOWORD(wparam)==10002)
            SetWindowText(hwnd, "Option 2");
        // Если мы нажали на 3-й радиокнопке.
        if(LOWORD(wparam)==10003)
            SetWindowText(hwnd, "Option 3");
        break;
        ...

Все. Можно компилировать и запускать программу.

Рассылки сайта 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
Отписаться

В избранное