Index: base/applications/mspaint_new/definitions.h =================================================================== --- base/applications/mspaint_new/definitions.h (revision 68389) +++ base/applications/mspaint_new/definitions.h (working copy) @@ -221,6 +221,8 @@ #define IDS_LOADERRORTEXT 933 +#define IDS_ENLARGEPROMPTTEXT 934 + #define WM_TOOLSMODELTOOLCHANGED WM_APP #define WM_TOOLSMODELSETTINGSCHANGED (WM_APP + 1) #define WM_TOOLSMODELZOOMCHANGED (WM_APP + 2) Index: base/applications/mspaint_new/lang/en-US.rc =================================================================== --- base/applications/mspaint_new/lang/en-US.rc (revision 68389) +++ base/applications/mspaint_new/lang/en-US.rc (working copy) @@ -214,4 +214,5 @@ IDS_PERCENTAGE "The percentage must be between 1 and 500." IDS_ANGLE "The angle must be between -89 and 89." IDS_LOADERRORTEXT "The file %s could not be loaded." + IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" END Index: base/applications/mspaint_new/winproc.cpp =================================================================== --- base/applications/mspaint_new/winproc.cpp (revision 68389) +++ base/applications/mspaint_new/winproc.cpp (working copy) @@ -107,6 +107,37 @@ void CMainWindow::InsertSelectionFromHBITMAP(HBITMAP bitmap, HWND window) { + int width = GetDIBWidth(bitmap); + int height = GetDIBHeight(bitmap); + int curWidth = imageModel.GetWidth(); + int curHeight = imageModel.GetHeight(); + + if (width > curWidth || height > curHeight) + { + TCHAR programname[20]; + TCHAR shouldEnlargePromptText[100]; + + LoadString(hProgInstance, IDS_PROGRAMNAME, programname, SIZEOF(programname)); + LoadString(hProgInstance, IDS_ENLARGEPROMPTTEXT, shouldEnlargePromptText, SIZEOF(shouldEnlargePromptText)); + + switch (MessageBox(shouldEnlargePromptText, programname, MB_YESNOCANCEL | MB_ICONQUESTION)) + { + case IDYES: + if (width > curWidth) + curWidth = width; + + if (height > curHeight) + curHeight = height; + + imageModel.Crop(curWidth, curHeight, 0, 0); + break; + case IDNO: + break; + case IDCANCEL: + return; + } + } + HWND hToolbar = FindWindowEx(toolBoxContainer.m_hWnd, NULL, TOOLBARCLASSNAME, NULL); SendMessage(hToolbar, TB_CHECKBUTTON, ID_RECTSEL, MAKELPARAM(TRUE, 0)); toolBoxContainer.SendMessage(WM_COMMAND, ID_RECTSEL);