регистрация класса окна
типы классов: локальные, глобальные, системные
создание окон
_In_ DWORD dwExStyle, // расширенный стиль окна (позже)
_In_opt_ LPCTSTR lpClassName, // имя зарегистрированного ранее класса, ATOM или имя системного класса
_In_opt_ LPCTSTR lpWindowName, // имя окна, будет отображаться в titleBar
_In_ DWORD dwStyle, // стиль окна
_In_ int x, // координаты окна (верхний левый угол)
_In_ int y, // для значений по умолчанию используйте CW_USEDEFAULT
_In_ int nWidth, // ширина и высота окна
_In_ int nHeight, // CW_USEDEFAULT имеет смысл только для overlapped окон
_In_opt_ HWND hWndParent, // хэндл родительское окно
_In_opt_ HMENU hMenu, // хэндл меню
_In_opt_ HINSTANCE hInstance, // хэндл модуля, с которым будет ассоциироваться данное окно
_In_opt_ LPVOID lpParam // указатель на значение, которое будет передано окну через CREATESTRUCT
);стили окна
типы окон
иерархия окон (child/parent owner/owned)
z-order
изменеие положения и размеров окна
background/foreground окна
focus
уничтожение окна
скроллирование окон
_In_ HWND hWnd,
_In_ int dx,
_In_ int dy
, In const RECT *prcScroll, // позволяет скроллить часть клиентской области _In_ const RECT *prcClip, // htubjy rjnjhsq gththbcjdsdfnmcz yt ,eltn
_In_ HRGN hrgnUpdate, // хэндл к региону, который должен быть помечен как невалидныей при скроллинге
_Out_ LPRECT prcUpdate, // результат
_In_ UINT flags // удаление или инвалидация области, скроллить ли дочерние окна, плавный скроллинг
);