mirror of
https://github.com/reactos/reactos.git
synced 2024-08-20 02:13:29 +00:00
![Katayama Hirofumi MZ](/assets/img/avatar_default.png)
- Use SetPixelV instead of SetPixel. - BI_RGB is zero. - Use CS_HREDRAW and CS_VREDRAW. CORE-18867
58 lines
1.7 KiB
C++
58 lines
1.7 KiB
C++
/*
|
|
* PROJECT: PAINT for ReactOS
|
|
* LICENSE: LGPL
|
|
* FILE: base/applications/mspaint/fullscreen.cpp
|
|
* PURPOSE: Window for fullscreen view
|
|
* PROGRAMMERS: Benedikt Freisen
|
|
*/
|
|
|
|
#include "precomp.h"
|
|
|
|
CFullscreenWindow fullscreenWindow;
|
|
|
|
/* FUNCTIONS ********************************************************/
|
|
|
|
HWND CFullscreenWindow::DoCreate()
|
|
{
|
|
if (m_hWnd)
|
|
return m_hWnd;
|
|
|
|
RECT rc = {0, 0, 0, 0}; // Rely on SW_SHOWMAXIMIZED
|
|
return Create(HWND_DESKTOP, rc, NULL, WS_POPUPWINDOW, WS_EX_TOPMOST);
|
|
}
|
|
|
|
LRESULT CFullscreenWindow::OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
|
{
|
|
SendMessage(WM_SETICON, ICON_BIG, (LPARAM) LoadIcon(hProgInstance, MAKEINTRESOURCE(IDI_APPICON)));
|
|
SendMessage(WM_SETICON, ICON_SMALL, (LPARAM) LoadIcon(hProgInstance, MAKEINTRESOURCE(IDI_APPICON)));
|
|
return 0;
|
|
}
|
|
|
|
LRESULT CFullscreenWindow::OnCloseOrKeyDownOrLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
|
{
|
|
mainWindow.ShowWindow(SW_SHOW);
|
|
ShowWindow(SW_HIDE);
|
|
return 0;
|
|
}
|
|
|
|
LRESULT CFullscreenWindow::OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
|
{
|
|
PAINTSTRUCT ps;
|
|
HDC hDC = BeginPaint(&ps);
|
|
RECT rcWnd;
|
|
GetWindowRect(&rcWnd);
|
|
INT cxDest = imageModel.GetWidth();
|
|
INT cyDest = imageModel.GetHeight();
|
|
INT xDest = (rcWnd.right - rcWnd.left - cxDest) / 2;
|
|
INT yDest = (rcWnd.bottom - rcWnd.top - cyDest) / 2;
|
|
BitBlt(hDC, xDest, yDest, cxDest, cyDest, imageModel.GetDC(), 0, 0, SRCCOPY);
|
|
EndPaint(&ps);
|
|
return 0;
|
|
}
|
|
|
|
LRESULT CFullscreenWindow::OnGetText(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
|
|
{
|
|
// return caption of the main window, instead
|
|
return mainWindow.SendMessage(nMsg, wParam, lParam);
|
|
}
|