windows.h — Windows-специфичный заголовочный файл языка программирования С, в котором объявляются функции, предоставляющие интерфейс доступа к Windows API[1]. В случае, если в файле используются и другие заголовочные файлы, связанные с Windows API, windows.h должен быть первым[2].
Дочерние заголовочные файлы
- excpt.h — обработка исключений
- stdarg.h — функции с сигнатурами аргументов переменной длины (стандартный заголовочный файл C)
- windef.h — различные макросы и типы
- winnt.h — различные макросы и типы для Windows NT
- basetsd.h — различные типы
- guiddef.h — тип
GUID
- ctype.h — символьные типы (стандартный заголовочный файл C)
- string.h — строчные типы и их буферы (стандартный заголовочный файл C)
- winbase.h — kernel32.dll, advapi32.dll: функции ядра
- winerror.h — Коды ошибок для Windows
- wingdi.h — GDI
- winuser.h — user32.dll
- winnls.h — локализация
- wincon.h — консольные службы
- winver.h — информация о версии
- winreg.h — реестр Windows
- winnetwk.h — сетевые службы
- winsvc.h — диспетчер управления службами
- imm.hhh — IME (редактор методов ввода)
Дополнительные заголовки
- cderr.h —
CommDlgExtendedError
коды ошибок функций - commdlg.h — Common Dialog Boxes
- dde.h — DDE
- ddeml.h — библиотека управления DDE
- dlgs.h — набор констант для Common Dialog Boxes
- lzexpand.h — алгоритм сжатия LZ77
- mmsystem.h — Windows Multimedia
- nb30.h — NetBIOS
- rpc.h — удалённый вызов процедур
- shellapi.h — Windows Shell[англ.] API
- wincrypt.h — криптографическое API
- winperf.h — измерение производительности
- winresrc.h — ресурсы
- winsock.h — Winsock (сокеты Windows), версия 1.1
- winspool.h — управление очередью печати
- winbgim.h — стандартная графическая библиотека
OLE и COM
- ole2.h — OLE
- objbase.h — COM
- oleauto.h — OLE Automation
- olectlid.h — различные определения для GUID
Пример использования
В данном примере рассматривается создание нового окна[3].
#include <windows.h>
LPSTR szClassName = "MyClass";
HINSTANCE hInstance;
LRESULT __stdcall MyWndProc(HWND, UINT, WPARAM, LPARAM);
int __stdcall WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow)
{
WNDCLASS wnd;
MSG msg;
HWND hwnd;
hInstance = hInst;
wnd.style = CS_HREDRAW | CS_VREDRAW; //объяснение ниже
wnd.lpfnWndProc = MyWndProc;
wnd.cbClsExtra = 0;
wnd.cbWndExtra = 0;
wnd.hInstance = hInstance;
wnd.hIcon = LoadIcon(NULL, IDI_APPLICATION); //иконка по умолчанию
wnd.hCursor = LoadCursor(NULL, IDC_ARROW); //курсор по умолчанию
wnd.hbrBackground = (HBRUSH)(COLOR_BACKGROUND+1);
wnd.lpszMenuName = NULL; //без меню
wnd.lpszClassName = szClassName;
if(!RegisterClass(&wnd)) //зарегистрировать WNDCLASS
{
MessageBox(NULL, "This Program Requires Windows NT",
"Error", MB_OK);
return 0;
}
hwnd = CreateWindow(szClassName,
"Window Title",
WS_OVERLAPPEDWINDOW, //оформление окна поумолчанию
CW_USEDEFAULT,
CW_USEDEFAULT, //координаты по умолчанию
CW_USEDEFAULT,
CW_USEDEFAULT, //ширина и высота по умолчанию
NULL, //без родительского окна
NULL, //без меню
hInstance,
NULL); //без параметра
ShowWindow(hwnd, iCmdShow); //отрисовать окно на экране
UpdateWindow(hwnd); //окно должно правильно обновляться
while(GetMessage(&msg, NULL, 0, 0)) //цикл сообщений
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT __stdcall MyWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
См. также
Примечания
- ↑ Richard Raposa. Understanding C++ for MFC. — ISBN 148228068X. Архивировано 30 июня 2022 года.
- ↑ Charles Petzold. Programming Windows. — 1998. — ISBN 0735646031. Архивировано 30 июня 2022 года.
- ↑ Module 1. Your First Windows Program — Win32 apps | Microsoft Docs . Дата обращения: 1 июля 2022. Архивировано 1 июля 2022 года.
Ссылки
- Документация Windows API (англ.)
You must be logged in to post a comment.