Reactos
at master 56 lines 1.8 kB view raw
1/* 2 * PROJECT: PAINT for ReactOS 3 * LICENSE: LGPL-2.0-or-later (https://spdx.org/licenses/LGPL-2.0-or-later) 4 * PURPOSE: Window for fullscreen view 5 * COPYRIGHT: Copyright 2015 Benedikt Freisen <b.freisen@gmx.net> 6 */ 7 8#include "precomp.h" 9 10CFullscreenWindow fullscreenWindow; 11 12/* FUNCTIONS ********************************************************/ 13 14HWND CFullscreenWindow::DoCreate() 15{ 16 if (m_hWnd) 17 return m_hWnd; 18 19 RECT rc = {0, 0, 0, 0}; // Rely on SW_SHOWMAXIMIZED 20 return Create(HWND_DESKTOP, rc, NULL, WS_POPUPWINDOW, WS_EX_TOPMOST); 21} 22 23LRESULT CFullscreenWindow::OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 24{ 25 SendMessage(WM_SETICON, ICON_BIG, (LPARAM)::LoadIconW(g_hinstExe, MAKEINTRESOURCEW(IDI_APPICON))); 26 SendMessage(WM_SETICON, ICON_SMALL, (LPARAM)::LoadIconW(g_hinstExe, MAKEINTRESOURCEW(IDI_APPICON))); 27 return 0; 28} 29 30LRESULT CFullscreenWindow::OnCloseOrKeyDownOrLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 31{ 32 mainWindow.ShowWindow(SW_SHOW); 33 ShowWindow(SW_HIDE); 34 return 0; 35} 36 37LRESULT CFullscreenWindow::OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 38{ 39 PAINTSTRUCT ps; 40 HDC hDC = BeginPaint(&ps); 41 RECT rcWnd; 42 GetWindowRect(&rcWnd); 43 INT cxDest = imageModel.GetWidth(); 44 INT cyDest = imageModel.GetHeight(); 45 INT xDest = (rcWnd.right - rcWnd.left - cxDest) / 2; 46 INT yDest = (rcWnd.bottom - rcWnd.top - cyDest) / 2; 47 ::BitBlt(hDC, xDest, yDest, cxDest, cyDest, imageModel.GetDC(), 0, 0, SRCCOPY); 48 EndPaint(&ps); 49 return 0; 50} 51 52LRESULT CFullscreenWindow::OnGetText(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 53{ 54 // return caption of the main window, instead 55 return mainWindow.SendMessage(nMsg, wParam, lParam); 56}