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); }
MkFloat2 MkWindowThemedNode::CalculateWindowSize(void) const { return ConvertClientToWindowSize(GetThemeName(), GetComponentType(), GetCustomForm(), GetClientSize()); }