//-------------------------------------------------------------------------- void VeWindows::_CreateWindow(Window* pkWindow) { WNDCLASSEXA kClass; kClass.cbSize = sizeof(WNDCLASSEXA); kClass.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; kClass.lpfnWndProc = WndProc; kClass.cbClsExtra = 0; kClass.cbWndExtra = 0; kClass.hInstance = m_kParams.m_hInstance; kClass.hIcon = 0; kClass.hCursor = LoadCursor(NULL, IDC_ARROW); kClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); kClass.lpszMenuName = NULL; kClass.lpszClassName = m_kParams.m_pcAppName; kClass.hIconSm = 0; VE_ASSERT_NOT_EQ(RegisterClassExA(&kClass), VE_FALSE); HWND hWnd; RECT kRect; DWORD dwStyle = STYLE_BASIC; VeInt32 x, y; VeInt32 w, h; dwStyle |= GetWindowStyle(pkWindow); kRect.left = pkWindow->x; kRect.top = pkWindow->y; kRect.right = pkWindow->x + pkWindow->w; kRect.bottom = pkWindow->y + pkWindow->h; AdjustWindowRectEx(&kRect, dwStyle, FALSE, 0); x = kRect.left; y = kRect.top; w = (kRect.right - kRect.left); h = (kRect.bottom - kRect.top); hWnd = CreateWindowA(m_kParams.m_pcAppName, "", dwStyle, x, y, w, h, NULL, NULL, m_kParams.m_hInstance, NULL); VE_ASSERT(hWnd); _PumpEvents(); SetupWindowData(pkWindow, hWnd, VE_TRUE); _DisableIME(pkWindow); }
//-------------------------------------------------------------------------- bool WindowsVideoDevice::_CreateWindow(VeWindow::Data* pkWindow) noexcept { VE_ASSERT(pkWindow); HWND hwnd; RECT rect; DWORD style = STYLE_BASIC; VeInt32 x, y; VeInt32 w, h; style |= GetWindowStyle(pkWindow); rect.left = pkWindow->x; rect.top = pkWindow->y; rect.right = pkWindow->x + pkWindow->w; rect.bottom = pkWindow->y + pkWindow->h; AdjustWindowRectEx(&rect, style, FALSE, 0); x = rect.left; y = rect.top; w = (rect.right - rect.left); h = (rect.bottom - rect.top); hwnd = CreateWindowA(m_kAppName, "", style, x, y, w, h, nullptr, nullptr, m_hInstance, nullptr); if (!hwnd) { return false; } _PumpEvents(); if (!SetupWindowData(pkWindow, hwnd, VE_TRUE)) { DestroyWindow(hwnd); return false; } return true; }