Esempio n. 1
0
//--------------------------------------------------------------------------
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);
}
Esempio n. 2
0
//--------------------------------------------------------------------------
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;
}