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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2012, 18:29   #1
decantnik
Пользователь
 
Аватар для decantnik
 
Регистрация: 15.10.2008
Сообщений: 36
По умолчанию Сообщения нажатия кнопок

Здравствуйте, недавно начал учить Win API возникло пару вопросов.

1) Создал 2 кнопки, вот так:
Код:
 HWND  newButton1 = CreateWindow(_T("BUTTON"), _T("Кнопка 1"),
                               WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP | BS_PUSHBUTTON,
                               100, 150, 150, 30, hWnd, NULL, NULL, 0);
HWND newButton2 = CreateWindow (_T("BUTTON"), _T("Кнопка 2"),
								WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP | BS_PUSHBUTTON,
								330, 150, 200, 30, hWnd, NULL, NULL, 0);
Теперь как в оконной функции отловить их нажатие? Какое сообщение они генерируют?
decantnik вне форума Ответить с цитированием
Старый 12.04.2012, 19:08   #2
StIX-S
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 69
По умолчанию

9 параметр функции CreateWindow - идентификатор окна, который нужно обработать в WM_COMMAND оконной процедуры.
Код:
#define IDC_BUTTON1 1000
#define IDC_BUTTON2 1001

HWND newButton1 = CreateWindow(_T("BUTTON"), _T("Кнопка 1"), WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP | BS_PUSHBUTTON,
                              100, 150, 150, 30, hWnd, (HMENU)IDC_BUTTON1, NULL, 0);
HWND newButton2 = CreateWindow(_T("BUTTON"), _T("Кнопка 2"), WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP | BS_PUSHBUTTON,
                               330, 150, 200, 30, hWnd, (HMENU)IDC_BUTTON2, NULL, 0);

BOOL CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
        case WM_COMMAND:
        {
            INT wmId    = LOWORD(wParam),
                wmEvent = HIWORD(wParam);

            switch (wmId)
            {
                case IDC_BUTTON1:
                    //...
                    break;
                case IDC_BUTTON2:
                    //...
                    break;
                default:
                    return DefWindowProc(hWnd, uMsg, wParam, lParam);
            }
            break;
        }
        default:
            return DefWindowProc(hWnd, uMsg, wParam, lParam);
    }

    return 0;
}

Последний раз редактировалось StIX-S; 12.04.2012 в 19:11.
StIX-S вне форума Ответить с цитированием
Старый 12.04.2012, 19:23   #3
decantnik
Пользователь
 
Аватар для decantnik
 
Регистрация: 15.10.2008
Сообщений: 36
По умолчанию

Огромное спасибо!
decantnik вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка нажатия кнопок мыши turbovitalik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 12.09.2011 08:49
Эмуляция нажатия кнопок!!(по таймеру!!) Танкист Win Api 11 01.03.2010 08:46
Перехват нажатия кнопок мыши DarkEvil Win Api 7 15.06.2009 22:38
C#: передача нажатия кнопок в браузер Savrik Общие вопросы .NET 3 13.06.2009 00:07