progs.biz  
Начало>WinAPI>API>Урок 18
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
Урок 18. Создание кнопки

Кнопка с точки зрения программиста - это тоже окно. У нее есть свой HWND и т. д. Раз это окно, то для создания кнопки (как и любого другого окна) мы должны использовать функцию CreateWindow. Вот пример:

CreateWindow("button", "Press me", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
        10, 10, 80, 30, hwnd, (HMENU)10000, hInstance, NULL);

Этот фрагмент надо вставить, например, сразу после вызова метода CreateWindow для создания основного окна нашего приложения в функции WinMain. Т. е. один CreateWindow используется для создания главного окна и надо вызывать свой CreateWindow для каждого элемента управления на форме.

Обратите внимание на первый параметр - как вы помните, в функции CreateWindow это имя класса, на основании которого мы создаем наше окно. Тут мы пишем не имя нашего класса, а имя предопределенного в Windows класса - button. Это класс для различных видов кнопкок, куда относятся собственно кнопки, радиокнопки, checkbox'ы. Что именно за тип кнопки создается, опеределяется третьим параметром (как вы видите, тут мы поставили BS_PUSHBUTTON - стиль обычной кнопки).

Второй параметр функции CreateWindow - это надпись, которую пользователь увидит на кнопке.

Еще два важных параметра - это 8-й и 9-й (у нас это hwnd и (HMENU)10000). Восьмой параметр определяет HWND родительского окна для нашей кнопки, а девятый - идентификатор кнопки. Каждый элемент управления должен, как правило, иметь свой уникальный идентификатор. Тут мы поставили его как 10000, но с таким же успехом могли поставить и 10001 или 10003. Так как этот параметр должен иметь тип (HMENU), то мы делаем приведение типа. Использовать этот параметр мы будет на следующем уроке.

Компилируем и запускаем программу. На нашей форме появилась кнопка:

Кнопка на форме

Но эта кнопка пока никак не реагирует на щелчок - но об этом в следующем уроке.

Рассылки нашего сайта на 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 Игорь Алексеев