Reactos
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}