Exemplo n.º 1
0
bool MkBaseWindow::SetUpByWindowCreation
(HINSTANCE hInstance, WNDPROC wndProc, HWND hParent, const MkStr& title, eSystemWindowProperty sysWinProp,
 const MkInt2& position, const MkInt2& clientSize, bool fullScreen, bool hide)
{
	// 윈도우 스타일
	m_WindowModeStyle = (hide) ? 0 : WS_VISIBLE;
	m_WindowModeStyle |= (WS_OVERLAPPED | WS_CAPTION);
	
	if (MK_FLAG_EXIST(sysWinProp, eSWP_Minimize))
	{
		m_WindowModeStyle |= WS_MINIMIZEBOX;
	}
	if (MK_FLAG_EXIST(sysWinProp, eSWP_Maximize))
	{
		m_WindowModeStyle |= WS_MAXIMIZEBOX;
	}
	if (MK_FLAG_EXIST(sysWinProp, eSWP_Close))
	{
		m_WindowModeStyle |= WS_SYSMENU;
	}

	m_CurrentWindowStyle = (fullScreen) ? FullModeStyle : m_WindowModeStyle;

	// 윈도우 위치 및 크기 재설정
	MkInt2 windowPos = position;
	MkInt2 windowSize = clientSize;
	
	if (fullScreen)
	{
		if ((windowSize.x <= 0) || (windowSize.y <= 0))
		{
			windowSize = MK_SYS_ENV.GetBackgroundResolution();
		}
		windowPos = MkInt2::Zero;
	}
	else
	{
		if ((windowSize.x <= 0) || (windowSize.y <= 0))
		{
			windowSize = GetWorkspaceSize();
			if (windowSize == MkInt2::Zero)
				return false;

			windowPos = MkInt2::Zero;
		}
		else
		{
			windowSize = ConvertClientToWindowSize(clientSize);
		}
	}

	// 윈도우 생성
	return _CreateWindow(hInstance, wndProc, hParent, title, windowPos, windowSize, fullScreen);
}
Exemplo n.º 2
0
MkFloat2 MkWindowThemedNode::CalculateWindowSize(void) const
{
	return ConvertClientToWindowSize(GetThemeName(), GetComponentType(), GetCustomForm(), GetClientSize());
}