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), то мы делаем приведение типа. Использовать этот параметр мы будет на следующем уроке.
Компилируем и запускаем программу. На нашей форме появилась кнопка:
Но эта кнопка пока никак не реагирует на щелчок - но об этом в следующем уроке.
|