[MSPAINT] Fix Copy and Paste

Call GetSelectionContents in SelectionModel::GetBitmap.
CORE-18920, CORE-18867
This commit is contained in:
Katayama Hirofumi MZ 2023-04-09 09:14:32 +09:00
parent 639739a7cd
commit 96c7fe4ccd
3 changed files with 10 additions and 6 deletions

View file

@ -349,8 +349,10 @@ void SelectionModel::StretchSkew(int nStretchPercentX, int nStretchPercentY, int
NotifyRefreshNeeded(); NotifyRefreshNeeded();
} }
HBITMAP SelectionModel::GetBitmap() const HBITMAP SelectionModel::GetBitmap()
{ {
if (m_hbmColor == NULL)
GetSelectionContents(imageModel.GetDC());
return m_hbmColor; return m_hbmColor;
} }

View file

@ -34,7 +34,7 @@ public:
BOOL TakeOff(); BOOL TakeOff();
void Landing(); void Landing();
HBITMAP GetBitmap() const; HBITMAP GetBitmap();
void GetSelectionContents(HDC hDCImage); void GetSelectionContents(HDC hDCImage);
void DrawFramePoly(HDC hDCImage); void DrawFramePoly(HDC hDCImage);
void DrawBackgroundPoly(HDC hDCImage, COLORREF crBg); void DrawBackgroundPoly(HDC hDCImage, COLORREF crBg);

View file

@ -648,10 +648,12 @@ LRESULT CMainWindow::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
canvasWindow.Invalidate(FALSE); canvasWindow.Invalidate(FALSE);
break; break;
case IDM_EDITCOPY: case IDM_EDITCOPY:
OpenClipboard(); if (OpenClipboard())
EmptyClipboard(); {
SetClipboardData(CF_BITMAP, CopyDIBImage(selectionModel.GetBitmap())); EmptyClipboard();
CloseClipboard(); SetClipboardData(CF_BITMAP, CopyDIBImage(selectionModel.GetBitmap()));
CloseClipboard();
}
break; break;
case IDM_EDITCUT: case IDM_EDITCUT:
/* Copy */ /* Copy */