mirror of
https://github.com/reactos/reactos.git
synced 2024-08-03 18:10:54 +00:00
[PAINT]
- apply patch by Black_Fox (see bug 5434) - fix minor bugs introduced by it - generalize changes related to mirroring rectangular selections to free form selections - solve problem regarding selection contents update svn path=/trunk/; revision=49089
This commit is contained in:
parent
4ab377fc5e
commit
47bd0d25ed
|
@ -101,3 +101,5 @@ extern HWND hSizeboxRightBottom;
|
||||||
|
|
||||||
extern POINT pointStack[256];
|
extern POINT pointStack[256];
|
||||||
extern short pointSP;
|
extern short pointSP;
|
||||||
|
extern POINT *ptStack;
|
||||||
|
extern int ptSP;
|
||||||
|
|
|
@ -12,8 +12,8 @@ ID_MENU MENU
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "&Soubor"
|
POPUP "&Soubor"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Nový\tCtrl+N", IDM_FILENEW
|
MENUITEM "&Nový\tCtrl+N", IDM_FILENEW
|
||||||
MENUITEM "Otevøít...\tCtrl+O", IDM_FILEOPEN
|
MENUITEM "&Otevøít...\tCtrl+O", IDM_FILEOPEN
|
||||||
MENUITEM "Uložit\tCtrl+S", IDM_FILESAVE
|
MENUITEM "Uložit\tCtrl+S", IDM_FILESAVE
|
||||||
MENUITEM "Uložit jako...", IDM_FILESAVEAS
|
MENUITEM "Uložit jako...", IDM_FILESAVEAS
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
|
@ -60,7 +60,7 @@ BEGIN
|
||||||
MENUITEM "800%", IDM_VIEWZOOM800
|
MENUITEM "800%", IDM_VIEWZOOM800
|
||||||
END
|
END
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Zobrazit møížku", IDM_VIEWSHOWGRID
|
MENUITEM "Zobrazit møížku\tCtrl+G", IDM_VIEWSHOWGRID
|
||||||
MENUITEM "Zobrazit miniaturu", IDM_VIEWSHOWMINIATURE
|
MENUITEM "Zobrazit miniaturu", IDM_VIEWSHOWMINIATURE
|
||||||
END
|
END
|
||||||
MENUITEM "Celá obrazovka\tCtrl+F", IDM_VIEWFULLSCREEN
|
MENUITEM "Celá obrazovka\tCtrl+F", IDM_VIEWFULLSCREEN
|
||||||
|
|
|
@ -284,6 +284,10 @@ endPaintingL(HDC hdc, short x, short y, int fg, int bg)
|
||||||
|
|
||||||
placeSelWin();
|
placeSelWin();
|
||||||
ShowWindow(hSelection, SW_SHOW);
|
ShowWindow(hSelection, SW_SHOW);
|
||||||
|
/* force refresh of selection contents */
|
||||||
|
SendMessage(hSelection, WM_LBUTTONDOWN, 0, 0);
|
||||||
|
SendMessage(hSelection, WM_MOUSEMOVE, 0, 0);
|
||||||
|
SendMessage(hSelection, WM_LBUTTONUP, 0, 0);
|
||||||
}
|
}
|
||||||
HeapFree(GetProcessHeap(), 0, ptStack);
|
HeapFree(GetProcessHeap(), 0, ptStack);
|
||||||
ptStack = NULL;
|
ptStack = NULL;
|
||||||
|
@ -310,6 +314,10 @@ endPaintingL(HDC hdc, short x, short y, int fg, int bg)
|
||||||
|
|
||||||
placeSelWin();
|
placeSelWin();
|
||||||
ShowWindow(hSelection, SW_SHOW);
|
ShowWindow(hSelection, SW_SHOW);
|
||||||
|
/* force refresh of selection contents */
|
||||||
|
SendMessage(hSelection, WM_LBUTTONDOWN, 0, 0);
|
||||||
|
SendMessage(hSelection, WM_MOUSEMOVE, 0, 0);
|
||||||
|
SendMessage(hSelection, WM_LBUTTONUP, 0, 0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case TOOL_RUBBER:
|
case TOOL_RUBBER:
|
||||||
|
|
|
@ -14,11 +14,11 @@
|
||||||
/* FUNCTIONS ********************************************************/
|
/* FUNCTIONS ********************************************************/
|
||||||
|
|
||||||
void
|
void
|
||||||
SetWallpaper(TCHAR * FileName, DWORD dwStyle, DWORD dwTile) //FIXME: The pattern (tiled/stretched) is not set
|
SetWallpaper(TCHAR * FileName, DWORD dwStyle, DWORD dwTile) //FIXME: Has to be called 2x to apply the pattern (tiled/stretched) too
|
||||||
{
|
{
|
||||||
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (PVOID) FileName, SPIF_UPDATEINIFILE);
|
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (PVOID) FileName, SPIF_UPDATEINIFILE);
|
||||||
|
|
||||||
/*HKEY hDesktop;
|
HKEY hDesktop;
|
||||||
TCHAR szStyle[3], szTile[3];
|
TCHAR szStyle[3], szTile[3];
|
||||||
|
|
||||||
if ((dwStyle > 2) || (dwTile > 2))
|
if ((dwStyle > 2) || (dwTile > 2))
|
||||||
|
@ -39,5 +39,5 @@ SetWallpaper(TCHAR * FileName, DWORD dwStyle, DWORD dwTile) //FIXME: The pat
|
||||||
_tcslen(szTile) * sizeof(TCHAR));
|
_tcslen(szTile) * sizeof(TCHAR));
|
||||||
|
|
||||||
RegCloseKey(hDesktop);
|
RegCloseKey(hDesktop);
|
||||||
}*/
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
/* INCLUDES *********************************************************/
|
/* INCLUDES *********************************************************/
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
#include <commctrl.h>
|
||||||
|
#include <tchar.h>
|
||||||
#include "globalvar.h"
|
#include "globalvar.h"
|
||||||
#include "drawing.h"
|
#include "drawing.h"
|
||||||
#include "history.h"
|
#include "history.h"
|
||||||
|
@ -87,6 +89,7 @@ SelectionWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
case WM_MOUSEMOVE:
|
case WM_MOUSEMOVE:
|
||||||
if (moving)
|
if (moving)
|
||||||
{
|
{
|
||||||
|
TCHAR sizeStr[100];
|
||||||
int xDelta;
|
int xDelta;
|
||||||
int yDelta;
|
int yDelta;
|
||||||
resetToU1();
|
resetToU1();
|
||||||
|
@ -147,6 +150,9 @@ SelectionWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_stprintf(sizeStr, _T("%d x %d"), rectSel_dest[2], rectSel_dest[3]);
|
||||||
|
SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM) sizeStr);
|
||||||
|
|
||||||
if (action != 0)
|
if (action != 0)
|
||||||
StretchBlt(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2], rectSel_dest[3], hSelDC, 0, 0, GetDIBWidth(hSelBm), GetDIBHeight(hSelBm), SRCCOPY);
|
StretchBlt(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2], rectSel_dest[3], hSelDC, 0, 0, GetDIBWidth(hSelBm), GetDIBHeight(hSelBm), SRCCOPY);
|
||||||
else
|
else
|
||||||
|
@ -182,6 +188,7 @@ SelectionWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
int h = rectSel_dest[3] * zoom / 1000 + 6;
|
int h = rectSel_dest[3] * zoom / 1000 + 6;
|
||||||
xPos = LOWORD(lParam);
|
xPos = LOWORD(lParam);
|
||||||
yPos = HIWORD(lParam);
|
yPos = HIWORD(lParam);
|
||||||
|
SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM) NULL);
|
||||||
action = identifyCorner(xPos, yPos, w, h);
|
action = identifyCorner(xPos, yPos, w, h);
|
||||||
if (action != 0)
|
if (action != 0)
|
||||||
SetCursor(LoadCursor(NULL, cursors[action]));
|
SetCursor(LoadCursor(NULL, cursors[action]));
|
||||||
|
|
|
@ -151,6 +151,11 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
switch (message) /* handle the messages */
|
switch (message) /* handle the messages */
|
||||||
{
|
{
|
||||||
|
case WM_CREATE:
|
||||||
|
ptStack = NULL;
|
||||||
|
ptSP = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
case WM_DESTROY:
|
case WM_DESTROY:
|
||||||
PostQuitMessage(0); /* send a WM_QUIT to the message queue */
|
PostQuitMessage(0); /* send a WM_QUIT to the message queue */
|
||||||
break;
|
break;
|
||||||
|
@ -446,9 +451,7 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
HDC hdc;
|
HDC hdc;
|
||||||
GetClientRect(hwndMiniature, (LPRECT) &mclient);
|
GetClientRect(hwndMiniature, (LPRECT) &mclient);
|
||||||
hdc = GetDC(hwndMiniature);
|
hdc = GetDC(hwndMiniature);
|
||||||
BitBlt(hdc, -min(imgXRes * GetScrollPos(hScrollbox, SB_HORZ) / 10000, imgXRes - mclient[2]),
|
BitBlt(hdc, 0, 0, imgXRes, imgYRes, hDrawingDC, 0, 0, SRCCOPY);
|
||||||
-min(imgYRes * GetScrollPos(hScrollbox, SB_VERT) / 10000, imgYRes - mclient[3]),
|
|
||||||
imgXRes, imgYRes, hDrawingDC, 0, 0, SRCCOPY);
|
|
||||||
ReleaseDC(hwndMiniature, hdc);
|
ReleaseDC(hwndMiniature, hdc);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -565,6 +568,24 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case WM_KEYDOWN:
|
||||||
|
if (wParam == VK_ESCAPE)
|
||||||
|
{
|
||||||
|
if (!drawing)
|
||||||
|
{
|
||||||
|
/* Deselect */
|
||||||
|
if ((activeTool == TOOL_RECTSEL) || (activeTool == TOOL_FREESEL))
|
||||||
|
{
|
||||||
|
startPaintingL(hDrawingDC, 0, 0, fgColor, bgColor);
|
||||||
|
whilePaintingL(hDrawingDC, 0, 0, fgColor, bgColor);
|
||||||
|
endPaintingL(hDrawingDC, 0, 0, fgColor, bgColor);
|
||||||
|
ShowWindow(hSelection, SW_HIDE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* FIXME: also cancel current drawing underway */
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case WM_MOUSEMOVE:
|
case WM_MOUSEMOVE:
|
||||||
if (hwnd == hImageArea)
|
if (hwnd == hImageArea)
|
||||||
{
|
{
|
||||||
|
@ -640,6 +661,8 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
if ((activeTool >= TOOL_TEXT) || (activeTool == TOOL_RECTSEL) || (activeTool == TOOL_FREESEL))
|
if ((activeTool >= TOOL_TEXT) || (activeTool == TOOL_RECTSEL) || (activeTool == TOOL_FREESEL))
|
||||||
{
|
{
|
||||||
TCHAR sizeStr[100];
|
TCHAR sizeStr[100];
|
||||||
|
if ((activeTool >= TOOL_LINE) && (GetAsyncKeyState(VK_SHIFT) < 0))
|
||||||
|
yRel = xRel;
|
||||||
_stprintf(sizeStr, _T("%d x %d"), xRel, yRel);
|
_stprintf(sizeStr, _T("%d x %d"), xRel, yRel);
|
||||||
SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM) sizeStr);
|
SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM) sizeStr);
|
||||||
}
|
}
|
||||||
|
@ -651,6 +674,8 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
if (activeTool >= TOOL_TEXT)
|
if (activeTool >= TOOL_TEXT)
|
||||||
{
|
{
|
||||||
TCHAR sizeStr[100];
|
TCHAR sizeStr[100];
|
||||||
|
if ((activeTool >= TOOL_LINE) && (GetAsyncKeyState(VK_SHIFT) < 0))
|
||||||
|
yRel = xRel;
|
||||||
_stprintf(sizeStr, _T("%d x %d"), xRel, yRel);
|
_stprintf(sizeStr, _T("%d x %d"), xRel, yRel);
|
||||||
SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM) sizeStr);
|
SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM) sizeStr);
|
||||||
}
|
}
|
||||||
|
@ -783,7 +808,7 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
case IDM_EDITDELETESELECTION:
|
case IDM_EDITDELETESELECTION:
|
||||||
{
|
{
|
||||||
/* remove selection window and already painted content using undo(),
|
/* remove selection window and already painted content using undo(),
|
||||||
paint Rect for rectangular selections and nothing for freeform selections */
|
paint Rect for rectangular selections and Poly for freeform selections */
|
||||||
undo();
|
undo();
|
||||||
if (activeTool == TOOL_RECTSEL)
|
if (activeTool == TOOL_RECTSEL)
|
||||||
{
|
{
|
||||||
|
@ -791,16 +816,23 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
Rect(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2] + rectSel_dest[0],
|
Rect(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2] + rectSel_dest[0],
|
||||||
rectSel_dest[3] + rectSel_dest[1], bgColor, bgColor, 0, TRUE);
|
rectSel_dest[3] + rectSel_dest[1], bgColor, bgColor, 0, TRUE);
|
||||||
}
|
}
|
||||||
|
if (activeTool == TOOL_FREESEL)
|
||||||
|
{
|
||||||
|
newReversible();
|
||||||
|
Poly(hDrawingDC, ptStack, ptSP + 1, 0, 0, 2, 0, FALSE);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case IDM_EDITSELECTALL:
|
case IDM_EDITSELECTALL:
|
||||||
if (activeTool == TOOL_RECTSEL)
|
{
|
||||||
{
|
HWND hToolbar = FindWindowEx(hToolBoxContainer, NULL, TOOLBARCLASSNAME, NULL);
|
||||||
startPaintingL(hDrawingDC, 0, 0, fgColor, bgColor);
|
SendMessage(hToolbar, TB_CHECKBUTTON, ID_RECTSEL, MAKELONG(TRUE, 0));
|
||||||
whilePaintingL(hDrawingDC, imgXRes, imgYRes, fgColor, bgColor);
|
SendMessage(hwnd, WM_COMMAND, ID_RECTSEL, 0);
|
||||||
endPaintingL(hDrawingDC, imgXRes, imgYRes, fgColor, bgColor);
|
startPaintingL(hDrawingDC, 0, 0, fgColor, bgColor);
|
||||||
}
|
whilePaintingL(hDrawingDC, imgXRes, imgYRes, fgColor, bgColor);
|
||||||
|
endPaintingL(hDrawingDC, imgXRes, imgYRes, fgColor, bgColor);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case IDM_EDITCOPYTO:
|
case IDM_EDITCOPYTO:
|
||||||
if (GetSaveFileName(&ofn) != 0)
|
if (GetSaveFileName(&ofn) != 0)
|
||||||
SaveDIBToFile(hSelBm, ofn.lpstrFile, hDrawingDC, NULL, NULL, fileHPPM, fileVPPM);
|
SaveDIBToFile(hSelBm, ofn.lpstrFile, hDrawingDC, NULL, NULL, fileHPPM, fileVPPM);
|
||||||
|
@ -829,23 +861,73 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
case IDM_IMAGEROTATEMIRROR:
|
case IDM_IMAGEROTATEMIRROR:
|
||||||
switch (mirrorRotateDlg())
|
switch (mirrorRotateDlg())
|
||||||
{
|
{
|
||||||
case 1:
|
case 1: /* flip horizontally */
|
||||||
newReversible();
|
if (IsWindowVisible(hSelection))
|
||||||
StretchBlt(hDrawingDC, imgXRes - 1, 0, -imgXRes, imgYRes, hDrawingDC, 0, 0,
|
{
|
||||||
imgXRes, imgYRes, SRCCOPY);
|
SelectObject(hSelDC, hSelMask);
|
||||||
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
StretchBlt(hSelDC, rectSel_dest[2] - 1, 0, -rectSel_dest[2], rectSel_dest[3], hSelDC,
|
||||||
|
0, 0, rectSel_dest[2], rectSel_dest[3], SRCCOPY);
|
||||||
|
SelectObject(hSelDC, hSelBm);
|
||||||
|
StretchBlt(hSelDC, rectSel_dest[2] - 1, 0, -rectSel_dest[2], rectSel_dest[3], hSelDC,
|
||||||
|
0, 0, rectSel_dest[2], rectSel_dest[3], SRCCOPY);
|
||||||
|
/* force refresh of selection contents, used also in case 2 and case 4 */
|
||||||
|
SendMessage(hSelection, WM_LBUTTONDOWN, 0, 0);
|
||||||
|
SendMessage(hSelection, WM_MOUSEMOVE, 0, 0);
|
||||||
|
SendMessage(hSelection, WM_LBUTTONUP, 0, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newReversible();
|
||||||
|
StretchBlt(hDrawingDC, imgXRes - 1, 0, -imgXRes, imgYRes, hDrawingDC, 0, 0,
|
||||||
|
imgXRes, imgYRes, SRCCOPY);
|
||||||
|
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2: /* flip vertically */
|
||||||
newReversible();
|
if (IsWindowVisible(hSelection))
|
||||||
StretchBlt(hDrawingDC, 0, imgYRes - 1, imgXRes, -imgYRes, hDrawingDC, 0, 0,
|
{
|
||||||
imgXRes, imgYRes, SRCCOPY);
|
SelectObject(hSelDC, hSelMask);
|
||||||
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
StretchBlt(hSelDC, 0, rectSel_dest[3] - 1, rectSel_dest[2], -rectSel_dest[3], hSelDC,
|
||||||
|
0, 0, rectSel_dest[2], rectSel_dest[3], SRCCOPY);
|
||||||
|
SelectObject(hSelDC, hSelBm);
|
||||||
|
StretchBlt(hSelDC, 0, rectSel_dest[3] - 1, rectSel_dest[2], -rectSel_dest[3], hSelDC,
|
||||||
|
0, 0, rectSel_dest[2], rectSel_dest[3], SRCCOPY);
|
||||||
|
SendMessage(hSelection, WM_LBUTTONDOWN, 0, 0);
|
||||||
|
SendMessage(hSelection, WM_MOUSEMOVE, 0, 0);
|
||||||
|
SendMessage(hSelection, WM_LBUTTONUP, 0, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newReversible();
|
||||||
|
StretchBlt(hDrawingDC, 0, imgYRes - 1, imgXRes, -imgYRes, hDrawingDC, 0, 0,
|
||||||
|
imgXRes, imgYRes, SRCCOPY);
|
||||||
|
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 3: /* rotate 90 degrees */
|
||||||
newReversible();
|
break;
|
||||||
StretchBlt(hDrawingDC, imgXRes - 1, imgYRes - 1, -imgXRes, -imgYRes, hDrawingDC,
|
case 4: /* rotate 180 degrees */
|
||||||
0, 0, imgXRes, imgYRes, SRCCOPY);
|
if (IsWindowVisible(hSelection))
|
||||||
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
{
|
||||||
|
SelectObject(hSelDC, hSelMask);
|
||||||
|
StretchBlt(hSelDC, rectSel_dest[2] - 1, rectSel_dest[3] - 1, -rectSel_dest[2], -rectSel_dest[3], hSelDC,
|
||||||
|
0, 0, rectSel_dest[2], rectSel_dest[3], SRCCOPY);
|
||||||
|
SelectObject(hSelDC, hSelBm);
|
||||||
|
StretchBlt(hSelDC, rectSel_dest[2] - 1, rectSel_dest[3] - 1, -rectSel_dest[2], -rectSel_dest[3], hSelDC,
|
||||||
|
0, 0, rectSel_dest[2], rectSel_dest[3], SRCCOPY);
|
||||||
|
SendMessage(hSelection, WM_LBUTTONDOWN, 0, 0);
|
||||||
|
SendMessage(hSelection, WM_MOUSEMOVE, 0, 0);
|
||||||
|
SendMessage(hSelection, WM_LBUTTONUP, 0, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newReversible();
|
||||||
|
StretchBlt(hDrawingDC, imgXRes - 1, imgYRes - 1, -imgXRes, -imgYRes, hDrawingDC,
|
||||||
|
0, 0, imgXRes, imgYRes, SRCCOPY);
|
||||||
|
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 5: /* rotate 270 degrees */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -895,6 +977,7 @@ WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
case IDM_VIEWSHOWGRID:
|
case IDM_VIEWSHOWGRID:
|
||||||
showGrid = !showGrid;
|
showGrid = !showGrid;
|
||||||
|
SendMessage(hImageArea, WM_PAINT, 0, 0);
|
||||||
break;
|
break;
|
||||||
case IDM_VIEWSHOWMINIATURE:
|
case IDM_VIEWSHOWMINIATURE:
|
||||||
showMiniature = !showMiniature;
|
showMiniature = !showMiniature;
|
||||||
|
|
Loading…
Reference in a new issue