progs.biz  
Начало>WinAPI>API>Урок 19
C#
VB.NET
Visual C++.NET
ASP.NET
Visual C++ 6
WinAPI
C/C++
Delphi
C++ Builder
Java
SQL
PHP
DirectX
Visual Basic 6.0
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

М. Фленов. Программирование на C++ глазами хакера
М. Фленов. Программирование на C++ глазами хакера
Заказать на Озоне



Яндекс-цитирования

Windows API
Урок 19. Добавляем обработчик для кнопки

Созданная нами на прошлом уроке кнопка никак не реагирует на щелчок. Исправим это.

Для этого мы должны добавить в switch оконной процедуры ветку WM_COMMAND.

Сообщение WM_COMMAND отправляется окну, когда пользователь выбирает пункт меню или использует акселератор для того или иного действия. Также это же сообщение посылается от различных элементов управления на окне (например, от кнопки в нашем случае).

Вот что, например, мы можем написать для нашей кнопки:

LONG WINAPI WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam)
{
    switch (Message){
    case WM_COMMAND:
        if(LOWORD(wparam)==10000)
        {
            MessageBox(hwnd, "Кнопка нажата", "", 0);
        }
        break;
        ...

Так как почти все элементы управления посылают WM_COMMAND, то нам надо как-то различать их. Это мы делаем через идентификатор элемента управления (10000 в нашем случае - см. предыдущий урок). Для сообщения WM_COMMAND он передается в младшей части wparam.

Наша программа в работе будет выглядеть так:

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


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