[MSPAINT]

- port load and save to ATL::CImage
- let CImage generate the filter lists for the dialogs
- add menu entries "From Scanner or Camera..." and "Send..." (no functionality)
- add menu entries for most recently used files using ATL::CPath and ATL::CString
- manage list of most recently used files in registry using ATL::CRegKey
- use CString in some places instead of TCHAR arrays

Use of CImage for load/save adds support for all GDI+ formats but breaks import/export of dots per meter/inch values.

svn path=/trunk/; revision=72819
This commit is contained in:
Benedikt Freisen 2016-09-26 19:53:42 +00:00
parent dcea2a97b2
commit 7c6b473efc
37 changed files with 449 additions and 198 deletions

View file

@ -1,6 +1,7 @@
project(MSPAINT)
set_cpp(WITH_RUNTIME)
add_definitions(-DINITGUID)
set_cpp(WITH_RUNTIME WITH_EXCEPTIONS)
include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/atl)
@ -32,7 +33,7 @@ file(GLOB mspaint_rc_deps icons/*.*)
add_rc_deps(rsrc.rc ${mspaint_rc_deps})
add_executable(mspaint ${SOURCE} rsrc.rc)
set_module_type(mspaint win32gui UNICODE)
target_link_libraries(mspaint atlnew)
add_importlibs(mspaint hhctrl comdlg32 shell32 user32 gdi32 advapi32 comctl32 msvcrt kernel32)
target_link_libraries(mspaint atlnew uuid)
add_importlibs(mspaint hhctrl comdlg32 shell32 user32 gdi32 advapi32 comctl32 msvcrt kernel32 rpcrt4 shlwapi)
add_pch(mspaint precomp.h SOURCE)
add_cd_file(TARGET mspaint DESTINATION reactos/system32 FOR all)

View file

@ -50,15 +50,25 @@
#define IDM_FILESAVE 203
#define IDM_FILESAVEAS 204
#define IDM_FILEFROMSCANNERORCAMERA 205
#define IDM_FILEPAGEVIEW 206
#define IDM_FILEPAGESETUP 207
#define IDM_FILEPRINT 208
#define IDM_FILESEND 209
#define IDM_FILEASWALLPAPERPLANE 210
#define IDM_FILEASWALLPAPERCENTERED 211
#define IDM_FILEASWALLPAPERSTRETCHED 212
#define IDM_FILEEXIT 215
#define IDM_FILEMOSTRECENTLYUSEDFILE 213
#define IDM_FILE1 214
#define IDM_FILE2 215
#define IDM_FILE3 216
#define IDM_FILE4 217
#define IDM_FILEEXIT 218
#define IDM_EDITUNDO 220
#define IDM_EDITREDO 221
@ -214,10 +224,10 @@
#define IDS_TOOLTIP15 924
#define IDS_TOOLTIP16 925
#define IDS_OPENFILTER 926
#define IDS_SAVEFILTER 927
#define IDS_FILESIZE 928
#define IDS_PRINTRES 929
#define IDS_ALLFILES 926
#define IDS_ALLPICTUREFILES 927
#define IDS_FILESIZE 928
#define IDS_PRINTRES 929
#define IDS_INTNUMBERS 930
#define IDS_PERCENTAGE 931

View file

@ -45,48 +45,17 @@ GetDIBHeight(HBITMAP hBitmap)
void
SaveDIBToFile(HBITMAP hBitmap, LPTSTR FileName, HDC hDC, LPSYSTEMTIME time, int *size, int hRes, int vRes)
{
BITMAP bm;
HANDLE hFile;
BITMAPFILEHEADER bf;
BITMAPINFOHEADER bi;
int imgDataSize;
DWORD dwBytesWritten;
char *buffer;
CImage img;
img.Attach(hBitmap);
img.Save(FileName); // TODO: error handling
img.Detach();
GetObject(hBitmap, sizeof(BITMAP), &bm);
// update time and size
ZeroMemory(&bf, sizeof(BITMAPFILEHEADER));
ZeroMemory(&bi, sizeof(BITMAPINFOHEADER));
imgDataSize = bm.bmWidthBytes * bm.bmHeight;
bf.bfType = 0x4d42; /* BM */
bf.bfSize = imgDataSize + 52;
bf.bfOffBits = 54;
bi.biSize = sizeof(BITMAPINFOHEADER);
bi.biWidth = bm.bmWidth;
bi.biHeight = bm.bmHeight;
bi.biPlanes = bm.bmPlanes;
bi.biBitCount = bm.bmBitsPixel;
bi.biCompression = BI_RGB;
bi.biXPelsPerMeter = hRes;
bi.biYPelsPerMeter = vRes;
buffer = (char*) HeapAlloc(GetProcessHeap(), 0, imgDataSize);
if (!buffer)
return;
GetDIBits(hDC, hBitmap, 0, bm.bmHeight, buffer, (LPBITMAPINFO) & bi, DIB_RGB_COLORS);
hFile = CreateFile(FileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
HANDLE hFile =
CreateFile(FileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
HeapFree(GetProcessHeap(), 0, buffer);
return;
}
WriteFile(hFile, &bf, sizeof(BITMAPFILEHEADER), &dwBytesWritten, NULL);
WriteFile(hFile, &bi, sizeof(BITMAPINFOHEADER), &dwBytesWritten, NULL);
WriteFile(hFile, buffer, imgDataSize, &dwBytesWritten, NULL);
if (time)
{
@ -97,11 +66,12 @@ SaveDIBToFile(HBITMAP hBitmap, LPTSTR FileName, HDC hDC, LPSYSTEMTIME time, int
if (size)
*size = GetFileSize(hFile, NULL);
// TODO: update hRes and vRes
CloseHandle(hFile);
HeapFree(GetProcessHeap(), 0, buffer);
}
void ShowFileLoadError(LPTSTR name)
void ShowFileLoadError(LPCTSTR name)
{
TCHAR programname[20];
TCHAR loaderrortext[100];
@ -113,13 +83,10 @@ void ShowFileLoadError(LPTSTR name)
}
void
LoadDIBFromFile(HBITMAP * hBitmap, LPTSTR name, LPSYSTEMTIME time, int *size, int *hRes, int *vRes)
LoadDIBFromFile(HBITMAP * hBitmap, LPCTSTR name, LPSYSTEMTIME time, int *size, int *hRes, int *vRes)
{
BITMAPFILEHEADER bfh;
BITMAPINFO *bi;
PVOID pvBits;
DWORD dwBytesRead;
HANDLE hFile;
CImage img;
img.Load(name); // TODO: error handling
if (!hBitmap)
{
@ -127,7 +94,10 @@ LoadDIBFromFile(HBITMAP * hBitmap, LPTSTR name, LPSYSTEMTIME time, int *size, in
return;
}
hFile =
*hBitmap = img.Detach();
// update time and size
HANDLE hFile =
CreateFile(name, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
@ -135,15 +105,6 @@ LoadDIBFromFile(HBITMAP * hBitmap, LPTSTR name, LPSYSTEMTIME time, int *size, in
return;
}
/* read header and check for 'BM' magic */
ReadFile(hFile, &bfh, sizeof(BITMAPFILEHEADER), &dwBytesRead, NULL);
if (bfh.bfType != 0x4d42)
{
CloseHandle(hFile);
ShowFileLoadError(name);
return;
}
if (time)
{
FILETIME ft;
@ -153,23 +114,7 @@ LoadDIBFromFile(HBITMAP * hBitmap, LPTSTR name, LPSYSTEMTIME time, int *size, in
if (size)
*size = GetFileSize(hFile, NULL);
bi = (BITMAPINFO*) HeapAlloc(GetProcessHeap(), 0, bfh.bfOffBits - sizeof(BITMAPFILEHEADER));
if (!bi)
{
CloseHandle(hFile);
ShowFileLoadError(name);
return;
}
ReadFile(hFile, bi, bfh.bfOffBits - sizeof(BITMAPFILEHEADER), &dwBytesRead, NULL);
*hBitmap = CreateDIBSection(NULL, bi, DIB_RGB_COLORS, &pvBits, NULL, 0);
ReadFile(hFile, pvBits, bfh.bfSize - bfh.bfOffBits, &dwBytesRead, NULL);
if (hRes)
*hRes = (*bi).bmiHeader.biXPelsPerMeter;
if (vRes)
*vRes = (*bi).bmiHeader.biYPelsPerMeter;
// TODO: update hRes and vRes
CloseHandle(hFile);
HeapFree(GetProcessHeap(), 0, bi);
}

View file

@ -15,6 +15,6 @@ int GetDIBHeight(HBITMAP hbm);
void SaveDIBToFile(HBITMAP hBitmap, LPTSTR FileName, HDC hDC, LPSYSTEMTIME time, int *size, int hRes,
int vRes);
void LoadDIBFromFile(HBITMAP *hBitmap, LPTSTR name, LPSYSTEMTIME time, int *size, int *hRes, int *vRes);
void LoadDIBFromFile(HBITMAP *hBitmap, LPCTSTR name, LPSYSTEMTIME time, int *size, int *hRes, int *vRes);
void ShowFileLoadError(LPTSTR name);
void ShowFileLoadError(LPCTSTR name);

View file

@ -61,7 +61,6 @@ extern HWND hToolBtn[16];
extern HINSTANCE hProgInstance;
extern TCHAR filename[256];
extern TCHAR filepathname[1000];
extern BOOL isAFile;
extern int fileSize;

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "&Запис\tCtrl+S", IDM_FILESAVE
MENUITEM "Запис &като...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Поставяне като тапет (настелено)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Поставяне като тапет (в средата)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Поставяне като тапет (разпънато)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Из&ход\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Обработка"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "Многоъгълник"
IDS_TOOLTIP15 "Елипса"
IDS_TOOLTIP16 "Заоблен правоъгълник"
IDS_OPENFILTER "Файлове bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1Всички файлове (*.*)\1*.*\1"
IDS_SAVEFILTER "24 разрядни файлове bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Всички файлове"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d разряда"
IDS_PRINTRES "%d x %d точки на метър"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "Uložit\tCtrl+S", IDM_FILESAVE
MENUITEM "Uložit j&ako...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Nastavit jako pozadí (vedle sebe)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Nastavit jako pozadí (na střed)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Nastavit jako pozadí (roztáhnout)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Ukončit\tAlt+F4", IDM_FILEEXIT
END
POPUP "Úpr&avy"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "Polygon"
IDS_TOOLTIP15 "Elipsa"
IDS_TOOLTIP16 "Zaoblený obdélník"
IDS_OPENFILTER "Soubory bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1Všechny soubory (*.*)\1*.*\1"
IDS_SAVEFILTER "24bitová bitmapa (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Všechny soubory"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bajtů"
IDS_PRINTRES "%d x %d pixelů na metr"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "Speichern\tStrg+S", IDM_FILESAVE
MENUITEM "Speichern &unter...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "Von Scanner oder Kamera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Seitenansicht", IDM_FILEPAGEVIEW
MENUITEM "Seite einrichten...", IDM_FILEPAGESETUP
MENUITEM "&Drucken...\tStrg+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Senden...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Als Hintergrund (Fläche)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Als Hintergrund (Zentriert)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Als Hintergrund (Gestreckt)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Zuletzt verwendete Datei", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Beenden\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Bearbeiten"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "Polygon"
IDS_TOOLTIP15 "Ellipse"
IDS_TOOLTIP16 "Abgerundetes Rechteck"
IDS_OPENFILTER "Bitmapdateien (*.bmp;*.dib)\1*.bmp;*.dib\1Alle Dateien (*.*)\1*.*\1"
IDS_SAVEFILTER "24-Bit-Bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Alle Dateien"
IDS_ALLPICTUREFILES "Alle Bilddateien"
IDS_FILESIZE "%d Bytes"
IDS_PRINTRES "%d x %d Pixel pro Meter"
IDS_INTNUMBERS "Bitte geben Sie nur ganze Zahlen ein!"

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "&Save\tCtrl+S", IDM_FILESAVE
MENUITEM "Save &As...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "&Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Set as wallpaper (Tiled)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Set as wallpaper (Centered)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Set as wallpaper (Stretched)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Quit\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Edit"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "Polygon"
IDS_TOOLTIP15 "Ellipse"
IDS_TOOLTIP16 "Rounded rectangle"
IDS_OPENFILTER "Bitmap files (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"
IDS_SAVEFILTER "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "All Files"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bytes"
IDS_PRINTRES "%d x %d pixels per meter"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "&Save\tCtrl+S", IDM_FILESAVE
MENUITEM "Save &As...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "&Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Set as wallpaper (Tiled)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Set as wallpaper (Centered)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Set as wallpaper (Stretched)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "E&xit\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Edit"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "Polygon"
IDS_TOOLTIP15 "Ellipse"
IDS_TOOLTIP16 "Rounded rectangle"
IDS_OPENFILTER "Bitmap files (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"
IDS_SAVEFILTER "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "All Files"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bytes"
IDS_PRINTRES "%d x %d pixels per meter"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -18,14 +18,20 @@ BEGIN
MENUITEM "&Guardar\tCtrl+G", IDM_FILESAVE
MENUITEM "Guardar &como...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Vista de página", IDM_FILEPAGEVIEW
MENUITEM "Configurar página...", IDM_FILEPAGESETUP
MENUITEM "&Imprimir...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Fondo de pantalla (normal)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Fondo de pantalla (centrado)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Fondo de pantalla (extendido)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Sa&lir\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Edición"
@ -211,8 +217,8 @@ BEGIN
IDS_TOOLTIP14 "Polígono"
IDS_TOOLTIP15 "Elipse"
IDS_TOOLTIP16 "Rectángulo redondeado"
IDS_OPENFILTER "Archivos de mapa de bits (*.bmp;*.dib)\1*.bmp;*.dib\1Todos los archivos (*.*)\1*.*\1"
IDS_SAVEFILTER "Mapa de bits de 24 bits (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Todos los archivos"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bytes"
IDS_PRINTRES "%d x %d píxeles/m"
IDS_INTNUMBERS "Sólo se admiten números sin decimales."

View file

@ -9,14 +9,20 @@ BEGIN
MENUITEM "Gorde\tCtrl+S", IDM_FILESAVE
MENUITEM "Gorde &honela...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Ezarri azteko plano gisa (Lauza moduan)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Ezarri azteko plano gisa (erdian)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Ezarri azteko plano gisa (tiratuta)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Irten\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Editatu"
@ -202,8 +208,8 @@ BEGIN
IDS_TOOLTIP14 "Poligonoa"
IDS_TOOLTIP15 "Elipsea"
IDS_TOOLTIP16 "Laukizuzen biribildua"
IDS_OPENFILTER "Bit-mapa fitxategiak(*.bmp;*.dib)\1*.bmp;*.dib\1Fitxategi gustiak (*.*)\1*.*\1"
IDS_SAVEFILTER "24 Biteko bit-mapa (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Fitxategi gustiak"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bytes"
IDS_PRINTRES "%d x %d pixels per meter"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -9,14 +9,20 @@ BEGIN
MENUITEM "&Enregistrer\tCtrl+S", IDM_FILESAVE
MENUITEM "Enregistrer &sous...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Choisir comme image d'arrière-plan (mosaïque)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Choisir comme image d'arrière-plan (centrée)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Choisir comme image d'arrière-plan (étirée)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Quitter\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Edition"
@ -202,8 +208,8 @@ BEGIN
IDS_TOOLTIP14 "Polygone"
IDS_TOOLTIP15 "Ellipse"
IDS_TOOLTIP16 "Rectangle arrondi"
IDS_OPENFILTER "Bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1Tous les fichiers (*.*)\1*.*\1"
IDS_SAVEFILTER "Bitmap 24 bit (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Tous les fichiers"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d octets"
IDS_PRINTRES "%d x %d pixels par mètre"
IDS_INTNUMBERS "Veuillez entrer des nombres entiers uniquement !"

View file

@ -9,14 +9,20 @@ BEGIN
MENUITEM "&שמור\tCtrl+S", IDM_FILESAVE
MENUITEM "שמור בש&ם...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "קבע כרקע שולחן העבודה (פרוש)", IDM_FILEASWALLPAPERPLANE
MENUITEM "קבע כרקע שולחן העבודה (מרכז)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "קבע כרקע שולחן העבודה (מלא)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&יציאה\tAlt+F4", IDM_FILEEXIT
END
POPUP "&עריכה"
@ -202,8 +208,8 @@ BEGIN
IDS_TOOLTIP14 "מצולע"
IDS_TOOLTIP15 "אליפסה"
IDS_TOOLTIP16 "מרובע עם קודקודים מרובעים"
IDS_OPENFILTER "קבצי מפת סיביות (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"
IDS_SAVEFILTER "קבצי מפת סיביות של 24 סיביות (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "All Files"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d בתים"
IDS_PRINTRES, "%d x %d פיקסלים למטר"
IDS_INTNUMBERS, "Please enter integral numbers only!"

View file

@ -9,14 +9,20 @@ BEGIN
MENUITEM "&Mentés\tCtrl+S", IDM_FILESAVE
MENUITEM "Mentés má&sként...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Beállítás tapétaként (mozaik)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Beállítás tapétaként (középre)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Beállítás tapétaként (nyújtás)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Kilépés\tAlt+F4", IDM_FILEEXIT
END
POPUP "S&zerkesztés"
@ -202,8 +208,8 @@ BEGIN
IDS_TOOLTIP14 "Sokszög"
IDS_TOOLTIP15 "Ellipszis"
IDS_TOOLTIP16 "Lekerekített téglalap"
IDS_OPENFILTER "Bitkép fájlok (*.bmp;*.dib)\1*.bmp;*.dib\1Minden fájl (*.*)\1*.*\1"
IDS_SAVEFILTER "24 bites bitkép (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Minden fájl"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bájt"
IDS_PRINTRES "%d x %d pixel per méter"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "Salva\tMaiusc+F12", IDM_FILESAVE
MENUITEM "Sal&va con nome...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Imposta come sfondo (normale)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Imposta come sfondo (centrata)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Imposta come sfondo (estesa)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "E&sci\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Modifica"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "Poligono"
IDS_TOOLTIP15 "Ellisse"
IDS_TOOLTIP16 "Rettangolo arrotondato"
IDS_OPENFILTER "Bitmap files (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"
IDS_SAVEFILTER "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "All Files"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bytes"
IDS_PRINTRES "%d x %d pixels per metro"
IDS_INTNUMBERS "Si prega di inserire solo numeri interi!"

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "上書き保存(&S)\tCtrl+S", IDM_FILESAVE
MENUITEM "名前を付けて保存(&A)...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "背景に設定 (並べて表示)", IDM_FILEASWALLPAPERPLANE
MENUITEM "背景に設定 (中央に表示)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "背景に設定 (拡大)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "ペイントの終了(&Q)\tAlt+F4", IDM_FILEEXIT
END
POPUP "編集(&E)"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "多角形"
IDS_TOOLTIP15 "楕円"
IDS_TOOLTIP16 "角丸四角形"
IDS_OPENFILTER "ビットマップ ファイル (*.bmp;*.dib)\1*.bmp;*.dib\1すべてのファイル (*.*)\1*.*\1"
IDS_SAVEFILTER "24 ビット ビットマップ (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "すべてのファイル"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d バイト"
IDS_PRINTRES "%d x %d ピクセル/メートル"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "Opslaan\tCtrl+S", IDM_FILESAVE
MENUITEM "Ops&laan als...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Als achtergrond instellen (naast elkaar)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Als achtergrond instellen (gecentreerd)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Als achtergrond instellen (uitgerekt)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Afsluiten\tAlt+F4", IDM_FILEEXIT
END
POPUP "Be&werken"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "Veelhoek"
IDS_TOOLTIP15 "Ovaal"
IDS_TOOLTIP16 "Afgeronde rechthoek"
IDS_OPENFILTER "Bitmapbestanden (*.bmp;*.dib)\1*.bmp;*.dib\1Alle bestanden (*.*)\1*.*\1"
IDS_SAVEFILTER "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Alle bestanden"
IDS_ALLPICTUREFILES "Alle beeldbestanden"
IDS_FILESIZE "%d bytes"
IDS_PRINTRES "%d x %d pixels per meter"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "&Lagre\tCtrl+S", IDM_FILESAVE
MENUITEM "Lagre &som...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Bruk som bakgrunn (sidestilt)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Bruk som bakgrunn (midstilt)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Bruk som bakgrunn (strukket)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Avslutt\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Rediger"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "Polygon"
IDS_TOOLTIP15 "Sirkel"
IDS_TOOLTIP16 "Avrundet rektangel"
IDS_OPENFILTER "Bitmap filer (*.bmp;*.dib)\1*.bmp;*.dib\1Alle filer (*.*)\1*.*\1"
IDS_SAVEFILTER "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Alle filer"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bytes"
IDS_PRINTRES "%d x %d pixels per meter"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -18,14 +18,20 @@ BEGIN
MENUITEM "&Zapisz\tCtrl+S", IDM_FILESAVE
MENUITEM "Z&apisz jako...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "&Podgląd wydruku", IDM_FILEPAGEVIEW
MENUITEM "&Ustawienia strony...", IDM_FILEPAGESETUP
MENUITEM "&Drukuj...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Ustaw jako &tło (sąsiadująco)", IDM_FILEASWALLPAPERPLANE
MENUITEM "U&staw jako tło (wyśrodkowane)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Ustaw jako tło (rozciągnięte)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Za&kończ\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Edycja"
@ -211,8 +217,8 @@ BEGIN
IDS_TOOLTIP14 "Wielokąt"
IDS_TOOLTIP15 "Elipsa"
IDS_TOOLTIP16 "Zaokrąglony prostokąt"
IDS_OPENFILTER "Pliki Bitmapy (*.bmp;*.dib)\1*.bmp;*.dib\1Wszystkie pliki (*.*)\1*.*\1"
IDS_SAVEFILTER "Bitmapa 24-bitowa (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Wszystkie pliki"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bajtów"
IDS_PRINTRES "%d x %d pikseli na metr"
IDS_INTNUMBERS "Wprowadź liczbę całkowitą."

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "&Salvar\tCtrl+S", IDM_FILESAVE
MENUITEM "Salvar &como...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Definir como plano de fundo (Lado a lado)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Definir como plano de fundo (Centralizado)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Definir como plano de fundo (Esticado)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Sai&r\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Editar"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "Polígono"
IDS_TOOLTIP15 "Ellipse"
IDS_TOOLTIP16 "Retângulo arredondado"
IDS_OPENFILTER "Arquivos de bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1Todos os arquivos (*.*)\1*.*\1"
IDS_SAVEFILTER "Bitmaps de 24 bits (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Todos os arquivos"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bytes"
IDS_PRINTRES "%d x %d pixels per meter"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "&Guardar\tCtrl+G", IDM_FILESAVE
MENUITEM "Guardar &como...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Definir como fundo (Mosaico)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Definir como fundo (Centrado)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Definir como fundo (Esticado)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Sai&r\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Editar"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "Polígono"
IDS_TOOLTIP15 "Elipse"
IDS_TOOLTIP16 "Retângulo arredondado"
IDS_OPENFILTER "Ficheiros de mapa de bits (*.bmp;*.dib)\1*.bmp;*.dib\1Todos os arquivos (*.*)\1*.*\1"
IDS_SAVEFILTER "Mapa de bits de 24 bits (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Todos os arquivos"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bytes"
IDS_PRINTRES "%d x %d pixels per meter"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -18,14 +18,20 @@ BEGIN
MENUITEM "&Păstrează\tCtrl+S", IDM_FILESAVE
MENUITEM "Păst&rare în…", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Pre&vizionează pagina", IDM_FILEPAGEVIEW
MENUITEM "C&onfigurare pagină…", IDM_FILEPAGESETUP
MENUITEM "I&mprimă…\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Decor de birou (în c&arou)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Decor de birou (&centrat)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Decor de birou (e&xtins)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "I&eșire\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Editare"
@ -211,8 +217,8 @@ BEGIN
IDS_TOOLTIP14 "Poligon"
IDS_TOOLTIP15 "Oval"
IDS_TOOLTIP16 "Dreptunghi rotunjit"
IDS_OPENFILTER "Fișier bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1Orice fișier (*.*)\1*.*\1"
IDS_SAVEFILTER "Bitmap pe 24 biți (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Orice fișier"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d octeți"
IDS_PRINTRES "%d x %d pixeli pe metru"
IDS_INTNUMBERS "Introduceți doar numere întregi!"

View file

@ -9,14 +9,20 @@ BEGIN
MENUITEM "&Сохранить\tCtrl+S", IDM_FILESAVE
MENUITEM "Сохранить &как...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Просмотр страницы", IDM_FILEPAGEVIEW
MENUITEM "Параметры страницы...", IDM_FILEPAGESETUP
MENUITEM "&Печать...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Сделать фоновым рисунком (&замостить)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Сделать фоновым рисунком (по ц&ентру)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Сделать фоновым рисунком (раст&януть)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Выход\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Правка"
@ -202,8 +208,8 @@ BEGIN
IDS_TOOLTIP14 "Многоугольник"
IDS_TOOLTIP15 "Эллипс"
IDS_TOOLTIP16 "Скругленный прямоугольник"
IDS_OPENFILTER "Точечные рисунки (*.bmp;*.dib)\1*.bmp;*.dib\1Все файлы (*.*)\1*.*\1"
IDS_SAVEFILTER "24-разрядный рисунок (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Все файлы"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d байт"
IDS_PRINTRES "%d x %d пикселей на метр"
IDS_INTNUMBERS, "Необходимо вводить только целые числа!"

View file

@ -18,14 +18,20 @@ BEGIN
MENUITEM "&Uložiť\tCtrl+S", IDM_FILESAVE
MENUITEM "Uložiť &ako...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Nastaviť ako pozadie (vydláždené)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Nastaviť ako pozadie (v strede)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Nastaviť ako pozadie (roztiahnuté)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Skončiť\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Upraviť"
@ -211,8 +217,8 @@ BEGIN
IDS_TOOLTIP14 "Polygón" //mnohouholník
IDS_TOOLTIP15 "Elipsa"
IDS_TOOLTIP16 "Zaoblený obdĺžnik"
IDS_OPENFILTER "Súbory bitových máp (*.bmp;*.dib)\1*.bmp;*.dib\1Všetky súbory (*.*)\1*.*\1"
IDS_SAVEFILTER "24-bitová mapa (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Všetky súbory"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bajtov"
IDS_PRINTRES "%d x %d pixelov na meter"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "&Ruaj\tCtrl+S", IDM_FILESAVE
MENUITEM "Ruaj &si...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Vere si wallpaper (tiled)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Vere si wallpaper (centered)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Vere si wallpaper (stretched)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Dil\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Modifiko"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "Polygon"
IDS_TOOLTIP15 "Elips"
IDS_TOOLTIP16 "Drejtkëndësh rrumbullak"
IDS_OPENFILTER "Bitmap files (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"
IDS_SAVEFILTER "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "All Files"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bytes"
IDS_PRINTRES "%d x %d pixels per meter"
IDS_INTNUMBERS "Ju lutem shkruani numra integrale vetëm!"

View file

@ -9,14 +9,20 @@ BEGIN
MENUITEM "&Spara\tCtrl+S", IDM_FILESAVE
MENUITEM "Spara so&m...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "Ange som skrivbordsbakgrund (kakelklädd)", IDM_FILEASWALLPAPERPLANE
MENUITEM "Ange som skrivbordsbakgrund (centrerad)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "Ange som skrivbordsbakgrund (utsträckt)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Avsluta\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Redigera"
@ -202,8 +208,8 @@ BEGIN
IDS_TOOLTIP14 "Polygon"
IDS_TOOLTIP15 "Ellips"
IDS_TOOLTIP16 "Avrundad rektangel"
IDS_OPENFILTER "Bitmap filer (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"
IDS_SAVEFILTER "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "All Files"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d bytes"
IDS_PRINTRES "%d x %d pixlar per meter"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "&Sakla\tDenetim+S", IDM_FILESAVE
MENUITEM "Ay&rı Sakla...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Sayfa Görünümü", IDM_FILEPAGEVIEW
MENUITEM "Sayfa Ayarla...", IDM_FILEPAGESETUP
MENUITEM "Ya&zdır...\tDenetim+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "&Döşeyerek Duvar Kağıdı Yap", IDM_FILEASWALLPAPERPLANE
MENUITEM "&Ortalayarak Duvar Kağıdı Yap", IDM_FILEASWALLPAPERCENTERED
MENUITEM "&Uzatarak Duvar Kağıdı Yap", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Çıkış\tSeçenek+F4", IDM_FILEEXIT
END
POPUP "&Düzen"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "Çokgen"
IDS_TOOLTIP15 "Söbek"
IDS_TOOLTIP16 "Yuvarlatılmış Dikdörtgen"
IDS_OPENFILTER "Bit Eşlem Resimleri (*.bmp, *.dib)\1*.bmp;*.dib\1Tüm Kütükler (*.*)\1*.*\1"
IDS_SAVEFILTER "24 Bitlik Bit Eşlem Resmi (*.bmp, *.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Tüm Kütükler"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d çoklu"
IDS_PRINTRES "Tüm metrekarelerde %d*%d nokta"
IDS_INTNUMBERS "Lütfen yalnızca tam sayı giriniz."

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "З&берегти\tCtrl+S", IDM_FILESAVE
MENUITEM "Зберегти &як...", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "Page View", IDM_FILEPAGEVIEW
MENUITEM "Page Setup...", IDM_FILEPAGESETUP
MENUITEM "Print...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "&Замостити робочий стіл Windows", IDM_FILEASWALLPAPERPLANE
MENUITEM "До ц&ентру робочого стола Windows", IDM_FILEASWALLPAPERCENTERED
MENUITEM "&Встановити як тло (розтягнути)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "В&ихід\tAlt+F4", IDM_FILEEXIT
END
POPUP "&Редагування"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "Багатокутник"
IDS_TOOLTIP15 "Еліпс"
IDS_TOOLTIP16 "Прямокутник з округленими кутами"
IDS_OPENFILTER "Точкові рисунки (*.bmp;*.dib)\1*.bmp;*.dib\1Усі файли (*.*)\1*.*\1"
IDS_SAVEFILTER "24-розрядний рисунок (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "Усі файли"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d байт"
IDS_PRINTRES "%d x %d пікс. на метр"
IDS_INTNUMBERS "Please enter integral numbers only!"

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "保存(&S)\tCtrl+S", IDM_FILESAVE
MENUITEM "另存为...(&A)", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "页面视图", IDM_FILEPAGEVIEW
MENUITEM "页面设置...", IDM_FILEPAGESETUP
MENUITEM "打印(&P)...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "保存为壁纸 (普通)", IDM_FILEASWALLPAPERPLANE
MENUITEM "保存为壁纸 (居中)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "保存为壁纸 (拉伸)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "退出(&X)\tAlt+F4", IDM_FILEEXIT
END
POPUP "编辑(&E)"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "多边形"
IDS_TOOLTIP15 "椭圆"
IDS_TOOLTIP16 "圆角矩形"
IDS_OPENFILTER "位图文件 (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"
IDS_SAVEFILTER "24 位位图文件 (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "All Files"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d 字节"
IDS_PRINTRES "%d x %d 像素每米"
IDS_INTNUMBERS "只输入数字积分!"

View file

@ -17,14 +17,20 @@ BEGIN
MENUITEM "儲存(&S)\tCtrl+S", IDM_FILESAVE
MENUITEM "另存為...(&A)", IDM_FILESAVEAS
MENUITEM SEPARATOR
MENUITEM "From Scanner or Camera...", IDM_FILEFROMSCANNERORCAMERA
MENUITEM SEPARATOR
MENUITEM "頁面檢視", IDM_FILEPAGEVIEW
MENUITEM "頁面設定...", IDM_FILEPAGESETUP
MENUITEM "列印(&P)...\tCtrl+P", IDM_FILEPRINT
MENUITEM SEPARATOR
MENUITEM "Send...", IDM_FILESEND
MENUITEM SEPARATOR
MENUITEM "儲存為壁紙 (普通)", IDM_FILEASWALLPAPERPLANE
MENUITEM "儲存為壁紙 (居中)", IDM_FILEASWALLPAPERCENTERED
MENUITEM "儲存為壁紙 (拉伸)", IDM_FILEASWALLPAPERSTRETCHED
MENUITEM SEPARATOR
MENUITEM "Most recently used file", IDM_FILEMOSTRECENTLYUSEDFILE, GRAYED
MENUITEM SEPARATOR
MENUITEM "結束(&X)\tAlt+F4", IDM_FILEEXIT
END
POPUP "編輯(&E)"
@ -210,8 +216,8 @@ BEGIN
IDS_TOOLTIP14 "多邊形"
IDS_TOOLTIP15 "橢圓形"
IDS_TOOLTIP16 "圓角矩形"
IDS_OPENFILTER "點陣圖文件 (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"
IDS_SAVEFILTER "24 位元點陣圖 (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_ALLFILES "All Files"
IDS_ALLPICTUREFILES "All Picture Files"
IDS_FILESIZE "%d 位元組"
IDS_PRINTRES "%d x %d 像素每米"
IDS_INTNUMBERS "請輸入整數只!"

View file

@ -54,7 +54,6 @@ HWND hToolBtn[16];
HINSTANCE hProgInstance;
TCHAR filename[256];
TCHAR filepathname[1000];
BOOL isAFile = FALSE;
int fileSize;
@ -93,18 +92,13 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument
HWND hwnd; /* This is the handle for our window */
MSG messages; /* Here messages to the application are saved */
TCHAR progtitle[1000];
TCHAR resstr[100];
HMENU menu;
HANDLE haccel;
TCHAR *c;
TCHAR sfnFilename[1000];
TCHAR sfnFiletitle[256];
TCHAR sfnFilter[1000];
TCHAR ofnFilename[1000];
TCHAR ofnFiletitle[256];
TCHAR ofnFilter[1000];
TCHAR miniaturetitle[100];
static int custColors[16] = { 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,
0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff
@ -132,9 +126,11 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument
/* initialize common controls library */
InitCommonControls();
LoadString(hThisInstance, IDS_DEFAULTFILENAME, filename, SIZEOF(filename));
LoadString(hThisInstance, IDS_WINDOWTITLE, resstr, SIZEOF(resstr));
_stprintf(progtitle, resstr, filename);
LoadString(hThisInstance, IDS_DEFAULTFILENAME, filepathname, SIZEOF(filepathname));
CPath pathFileName(filepathname);
pathFileName.StripPath();
CString strTitle;
strTitle.Format(IDS_WINDOWTITLE, (LPCTSTR)pathFileName);
LoadString(hThisInstance, IDS_MINIATURETITLE, miniaturetitle, SIZEOF(miniaturetitle));
/* load settings from registry */
@ -144,7 +140,7 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument
/* create main window */
RECT mainWindowPos = {0, 0, 544, 375}; // FIXME: use equivalent of CW_USEDEFAULT for position
hwnd = mainWindow.Create(HWND_DESKTOP, mainWindowPos, progtitle, WS_OVERLAPPEDWINDOW);
hwnd = mainWindow.Create(HWND_DESKTOP, mainWindowPos, strTitle, WS_OVERLAPPEDWINDOW);
RECT fullscreenWindowPos = {0, 0, 100, 100};
fullscreenWindow.Create(HWND_DESKTOP, fullscreenWindowPos, NULL, WS_POPUPWINDOW | WS_MAXIMIZE);
@ -214,15 +210,14 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument
LoadDIBFromFile(&bmNew, lpszArgument, &fileTime, &fileSize, &fileHPPM, &fileVPPM);
if (bmNew != NULL)
{
TCHAR tempstr[1000];
TCHAR resstr[100];
TCHAR *temp;
imageModel.Insert(bmNew);
GetFullPathName(lpszArgument, SIZEOF(filepathname), filepathname, &temp);
_tcscpy(filename, temp);
LoadString(hProgInstance, IDS_WINDOWTITLE, resstr, SIZEOF(resstr));
_stprintf(tempstr, resstr, filename);
mainWindow.SetWindowText(tempstr);
CPath pathFileName(filepathname);
pathFileName.StripPath();
CString strTitle;
strTitle.Format(IDS_WINDOWTITLE, (LPCTSTR)pathFileName);
mainWindow.SetWindowText(strTitle);
imageModel.ClearHistory();
isAFile = TRUE;
}
@ -244,32 +239,35 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument
choosecolor.lpTemplateName = NULL;
/* initializing the OPENFILENAME structure for use with GetOpenFileName and GetSaveFileName */
CopyMemory(ofnFilename, filename, sizeof(filename));
LoadString(hThisInstance, IDS_OPENFILTER, ofnFilter, SIZEOF(ofnFilter));
for(c = ofnFilter; *c; c++)
if (*c == '\1')
*c = '\0';
CopyMemory(ofnFilename, filepathname, sizeof(filepathname));
CString strImporters;
CSimpleArray<GUID> aguidFileTypesI;
CString strAllPictureFiles;
strAllPictureFiles.LoadString(hThisInstance, IDS_ALLPICTUREFILES);
CImage::GetImporterFilterString(strImporters, aguidFileTypesI, strAllPictureFiles, CImage::excludeDefaultLoad, _T('\0'));
// CAtlStringW strAllFiles;
// strAllFiles.LoadString(hThisInstance, IDS_ALLFILES);
// strImporters = strAllFiles + CAtlStringW(_T("|*.*|")).Replace('|', '\0') + strImporters;
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.hInstance = hThisInstance;
ofn.lpstrFilter = ofnFilter;
ofn.lpstrFilter = strImporters;
ofn.lpstrFile = ofnFilename;
ofn.nMaxFile = SIZEOF(ofnFilename);
ofn.lpstrFileTitle = ofnFiletitle;
ofn.nMaxFileTitle = SIZEOF(ofnFiletitle);
ofn.Flags = OFN_HIDEREADONLY;
CopyMemory(sfnFilename, filename, sizeof(filename));
LoadString(hThisInstance, IDS_SAVEFILTER, sfnFilter, SIZEOF(sfnFilter));
for(c = sfnFilter; *c; c++)
if (*c == '\1')
*c = '\0';
CopyMemory(sfnFilename, filepathname, sizeof(filepathname));
CString strExporters;
CSimpleArray<GUID> aguidFileTypesE;
CImage::GetExporterFilterString(strExporters, aguidFileTypesE, NULL, CImage::excludeDefaultSave, _T('\0'));
ZeroMemory(&sfn, sizeof(OPENFILENAME));
sfn.lStructSize = sizeof(OPENFILENAME);
sfn.hwndOwner = hwnd;
sfn.hInstance = hThisInstance;
sfn.lpstrFilter = sfnFilter;
sfn.lpstrFilter = strExporters;
sfn.lpstrFile = sfnFilename;
sfn.nMaxFile = SIZEOF(sfnFilename);
sfn.lpstrFileTitle = sfnFiletitle;

View file

@ -10,6 +10,9 @@
#include <tchar.h>
#include <atlbase.h>
#include <atlcom.h>
#include <atlimage.h>
#include <atlpath.h>
#include <atlstr.h>
#include <atlwin.h>
#include <windowsx.h>
#include <commdlg.h>

View file

@ -104,6 +104,27 @@ void RegistrySettings::Load()
cbData = sizeof(WINDOWPLACEMENT);
RegQueryValueEx(hView, _T("WindowPlacement"), 0, NULL, (LPBYTE) &WindowPlacement, &cbData);
}
CRegKey hKey;
if (hKey.Open(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Paint\\Recent File List"), KEY_READ) == ERROR_SUCCESS)
{
ULONG nChars = MAX_PATH;
LPTSTR pszFile1 = strFile1.GetBuffer(nChars);
hKey.QueryStringValue(_T("File1"), pszFile1, &nChars);
strFile1.ReleaseBuffer();
nChars = MAX_PATH;
LPTSTR pszFile2 = strFile2.GetBuffer(nChars);
hKey.QueryStringValue(_T("File2"), pszFile2, &nChars);
strFile2.ReleaseBuffer();
nChars = MAX_PATH;
LPTSTR pszFile3 = strFile3.GetBuffer(nChars);
hKey.QueryStringValue(_T("File3"), pszFile3, &nChars);
strFile3.ReleaseBuffer();
nChars = MAX_PATH;
LPTSTR pszFile4 = strFile4.GetBuffer(nChars);
hKey.QueryStringValue(_T("File4"), pszFile4, &nChars);
strFile4.ReleaseBuffer();
}
}
void RegistrySettings::Store()
@ -126,4 +147,53 @@ void RegistrySettings::Store()
RegSetValueEx(hView, _T("UnitSetting"), 0, REG_DWORD, (LPBYTE) &UnitSetting, sizeof(DWORD));
RegSetValueEx(hView, _T("WindowPlacement"), 0, REG_BINARY, (LPBYTE) &WindowPlacement, sizeof(WINDOWPLACEMENT));
}
CRegKey hKey;
if (hKey.Create(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Paint\\Recent File List")) == ERROR_SUCCESS)
{
if (!strFile1.IsEmpty())
hKey.SetStringValue(_T("File1"), strFile1);
if (!strFile2.IsEmpty())
hKey.SetStringValue(_T("File2"), strFile2);
if (!strFile3.IsEmpty())
hKey.SetStringValue(_T("File3"), strFile3);
if (!strFile4.IsEmpty())
hKey.SetStringValue(_T("File4"), strFile4);
}
}
void RegistrySettings::SetMostRecentFile(LPCTSTR pszPathName)
{
if (strFile1 == pszPathName)
{
// do nothing
}
else if (strFile2 == pszPathName)
{
CString strTemp = strFile2;
strFile2 = strFile1;
strFile1 = strTemp;
}
else if (strFile3 == pszPathName)
{
CString strTemp = strFile3;
strFile3 = strFile2;
strFile2 = strFile1;
strFile1 = strTemp;
}
else if (strFile4 == pszPathName)
{
CString strTemp = strFile4;
strFile4 = strFile3;
strFile3 = strFile2;
strFile2 = strFile1;
strFile1 = strTemp;
}
else
{
strFile4 = strFile3;
strFile3 = strFile2;
strFile2 = strFile1;
strFile1 = pszPathName;
}
}

View file

@ -25,8 +25,14 @@ public:
DWORD UnitSetting;
WINDOWPLACEMENT WindowPlacement;
CString strFile1;
CString strFile2;
CString strFile3;
CString strFile4;
static void SetWallpaper(TCHAR *szFileName, DWORD dwStyle, DWORD dwTile);
void Load();
void Store();
void SetMostRecentFile(LPCTSTR pszPathName);
};

View file

@ -78,30 +78,27 @@ void CMainWindow::saveImage(BOOL overwrite)
}
else if (GetSaveFileName(&sfn) != 0)
{
TCHAR tempstr[1000];
TCHAR resstr[100];
imageModel.SaveImage(sfn.lpstrFile);
CopyMemory(filename, sfn.lpstrFileTitle, sizeof(filename));
CopyMemory(filepathname, sfn.lpstrFile, sizeof(filepathname));
LoadString(hProgInstance, IDS_WINDOWTITLE, resstr, SIZEOF(resstr));
_stprintf(tempstr, resstr, filename);
SetWindowText(tempstr);
CString strTitle;
strTitle.Format(IDS_WINDOWTITLE, (LPCTSTR)sfn.lpstrFileTitle);
SetWindowText(strTitle);
isAFile = TRUE;
}
}
void CMainWindow::UpdateApplicationProperties(HBITMAP bitmap, LPTSTR newfilename, LPTSTR newfilepathname)
void CMainWindow::UpdateApplicationProperties(HBITMAP bitmap, LPCTSTR newfilepathname)
{
TCHAR tempstr[1000];
TCHAR resstr[100];
imageModel.Insert(bitmap);
CopyMemory(filename, newfilename, sizeof(filename));
CopyMemory(filepathname, newfilepathname, sizeof(filepathname));
LoadString(hProgInstance, IDS_WINDOWTITLE, resstr, SIZEOF(resstr));
_stprintf(tempstr, resstr, filename);
SetWindowText(tempstr);
CPath pathFileName(newfilepathname);
pathFileName.StripPath();
CString strTitle;
strTitle.Format(IDS_WINDOWTITLE, (LPCTSTR)pathFileName);
SetWindowText(strTitle);
imageModel.ClearHistory();
isAFile = TRUE;
registrySettings.SetMostRecentFile(newfilepathname);
}
void CMainWindow::InsertSelectionFromHBITMAP(HBITMAP bitmap, HWND window)
@ -170,10 +167,7 @@ LRESULT CMainWindow::OnDropFiles(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL&
LoadDIBFromFile(&bmNew, droppedfile, &fileTime, &fileSize, &fileHPPM, &fileVPPM);
if (bmNew != NULL)
{
TCHAR *pathend;
pathend = _tcsrchr(droppedfile, '\\');
pathend++;
UpdateApplicationProperties(bmNew, pathend, pathend);
UpdateApplicationProperties(bmNew, droppedfile);
}
return 0;
}
@ -196,13 +190,13 @@ LRESULT CMainWindow::OnClose(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHan
{
if (!imageModel.IsImageSaved())
{
TCHAR programname[20];
TCHAR saveprompttext[100];
TCHAR temptext[500];
LoadString(hProgInstance, IDS_PROGRAMNAME, programname, SIZEOF(programname));
LoadString(hProgInstance, IDS_SAVEPROMPTTEXT, saveprompttext, SIZEOF(saveprompttext));
_stprintf(temptext, saveprompttext, filename);
switch (MessageBox(temptext, programname, MB_YESNOCANCEL | MB_ICONQUESTION))
CString strProgramName;
strProgramName.LoadString(IDS_PROGRAMNAME);
CPath pathFileName(filepathname);
pathFileName.StripPath();
CString strSavePromptText;
strSavePromptText.Format(IDS_SAVEPROMPTTEXT, (LPCTSTR)pathFileName);
switch (MessageBox(strSavePromptText, strProgramName, MB_YESNOCANCEL | MB_ICONQUESTION))
{
case IDNO:
DestroyWindow();
@ -231,6 +225,35 @@ LRESULT CMainWindow::OnInitMenuPopup(UINT nMsg, WPARAM wParam, LPARAM lParam, BO
EnableMenuItem(menu, IDM_FILEASWALLPAPERPLANE, ENABLED_IF(isAFile));
EnableMenuItem(menu, IDM_FILEASWALLPAPERCENTERED, ENABLED_IF(isAFile));
EnableMenuItem(menu, IDM_FILEASWALLPAPERSTRETCHED, ENABLED_IF(isAFile));
RemoveMenu(menu, IDM_FILE1, MF_BYCOMMAND);
RemoveMenu(menu, IDM_FILE2, MF_BYCOMMAND);
RemoveMenu(menu, IDM_FILE3, MF_BYCOMMAND);
RemoveMenu(menu, IDM_FILE4, MF_BYCOMMAND);
if (!registrySettings.strFile1.IsEmpty())
{
RemoveMenu(menu, IDM_FILEMOSTRECENTLYUSEDFILE, MF_BYCOMMAND);
CPath pathFile1(registrySettings.strFile1);
pathFile1.CompactPathEx(30);
if (!registrySettings.strFile2.IsEmpty())
{
CPath pathFile2(registrySettings.strFile2);
pathFile2.CompactPathEx(30);
if (!registrySettings.strFile3.IsEmpty())
{
CPath pathFile3(registrySettings.strFile3);
pathFile3.CompactPathEx(30);
if (!registrySettings.strFile4.IsEmpty())
{
CPath pathFile4(registrySettings.strFile4);
pathFile4.CompactPathEx(30);
InsertMenu((HMENU)wParam, 17, MF_BYPOSITION | MF_STRING, IDM_FILE4, _T("4 ") + pathFile4);
}
InsertMenu((HMENU)wParam, 17, MF_BYPOSITION | MF_STRING, IDM_FILE3, _T("3 ") + pathFile3);
}
InsertMenu((HMENU)wParam, 17, MF_BYPOSITION | MF_STRING, IDM_FILE2, _T("2 ") + pathFile2);
}
InsertMenu((HMENU)wParam, 17, MF_BYPOSITION | MF_STRING, IDM_FILE1, _T("1 ") + pathFile1);
}
break;
case 1: /* Edit menu */
EnableMenuItem(menu, IDM_EDITUNDO, ENABLED_IF(imageModel.HasUndoSteps()));
@ -352,13 +375,13 @@ LRESULT CMainWindow::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
BOOL reset = TRUE;
if (!imageModel.IsImageSaved())
{
TCHAR programname[20];
TCHAR saveprompttext[100];
TCHAR temptext[500];
LoadString(hProgInstance, IDS_PROGRAMNAME, programname, SIZEOF(programname));
LoadString(hProgInstance, IDS_SAVEPROMPTTEXT, saveprompttext, SIZEOF(saveprompttext));
_stprintf(temptext, saveprompttext, filename);
switch (MessageBox(temptext, programname, MB_YESNOCANCEL | MB_ICONQUESTION))
CString strProgramName;
strProgramName.LoadString(IDS_PROGRAMNAME);
CPath pathFileName(filepathname);
pathFileName.StripPath();
CString strSavePromptText;
strSavePromptText.Format(IDS_SAVEPROMPTTEXT, (LPCTSTR)pathFileName);
switch (MessageBox(strSavePromptText, strProgramName, MB_YESNOCANCEL | MB_ICONQUESTION))
{
case IDNO:
imageModel.imageSaved = TRUE; //TODO: move to ImageModel
@ -385,7 +408,7 @@ LRESULT CMainWindow::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
LoadDIBFromFile(&bmNew, ofn.lpstrFile, &fileTime, &fileSize, &fileHPPM, &fileVPPM);
if (bmNew != NULL)
{
UpdateApplicationProperties(bmNew, ofn.lpstrFileTitle, ofn.lpstrFileTitle);
UpdateApplicationProperties(bmNew, ofn.lpstrFile);
}
}
break;
@ -436,6 +459,46 @@ LRESULT CMainWindow::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
case IDM_FILEASWALLPAPERSTRETCHED:
RegistrySettings::SetWallpaper(filepathname, 2, 0);
break;
case IDM_FILE1:
{
HBITMAP bmNew = NULL;
LoadDIBFromFile(&bmNew, registrySettings.strFile1, &fileTime, &fileSize, &fileHPPM, &fileVPPM);
if (bmNew != NULL)
{
UpdateApplicationProperties(bmNew, registrySettings.strFile1);
}
break;
}
case IDM_FILE2:
{
HBITMAP bmNew = NULL;
LoadDIBFromFile(&bmNew, registrySettings.strFile2, &fileTime, &fileSize, &fileHPPM, &fileVPPM);
if (bmNew != NULL)
{
UpdateApplicationProperties(bmNew, registrySettings.strFile2);
}
break;
}
case IDM_FILE3:
{
HBITMAP bmNew = NULL;
LoadDIBFromFile(&bmNew, registrySettings.strFile3, &fileTime, &fileSize, &fileHPPM, &fileVPPM);
if (bmNew != NULL)
{
UpdateApplicationProperties(bmNew, registrySettings.strFile3);
}
break;
}
case IDM_FILE4:
{
HBITMAP bmNew = NULL;
LoadDIBFromFile(&bmNew, registrySettings.strFile4, &fileTime, &fileSize, &fileHPPM, &fileVPPM);
if (bmNew != NULL)
{
UpdateApplicationProperties(bmNew, registrySettings.strFile4);
}
break;
}
case IDM_EDITUNDO:
imageModel.Undo();
imageArea.Invalidate(FALSE);

View file

@ -40,6 +40,6 @@ public:
void alignChildrenToMainWindow();
void saveImage(BOOL overwrite);
void UpdateApplicationProperties(HBITMAP bitmap, LPTSTR newfilename, LPTSTR newfilepathname);
void UpdateApplicationProperties(HBITMAP bitmap, LPCTSTR newfilepathname);
void InsertSelectionFromHBITMAP(HBITMAP bitmap, HWND window);
};