[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();
}
HBITMAP SelectionModel::GetBitmap() const
HBITMAP SelectionModel::GetBitmap()
{
if (m_hbmColor == NULL)
GetSelectionContents(imageModel.GetDC());
return m_hbmColor;
}

View file

@ -34,7 +34,7 @@ public:
BOOL TakeOff();
void Landing();
HBITMAP GetBitmap() const;
HBITMAP GetBitmap();
void GetSelectionContents(HDC hDCImage);
void DrawFramePoly(HDC hDCImage);
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);
break;
case IDM_EDITCOPY:
OpenClipboard();
EmptyClipboard();
SetClipboardData(CF_BITMAP, CopyDIBImage(selectionModel.GetBitmap()));
CloseClipboard();
if (OpenClipboard())
{
EmptyClipboard();
SetClipboardData(CF_BITMAP, CopyDIBImage(selectionModel.GetBitmap()));
CloseClipboard();
}
break;
case IDM_EDITCUT:
/* Copy */