P
gut hier noch etwas:
das ist jetzt die funktion in der alles funktioniert
bool WriteArrayToFile(HWND hwnd)
{
int x=0, y=0;
char pa[260]={0};
OPENFILENAME op;
ZeroMemory(&op, sizeof(OPENFILENAME));
op.lStructSize=sizeof(OPENFILENAME);
op.hwndOwner=hwnd;
op.lpstrDefExt="pic";
op.lpstrFilter="Picture Dateien (*.pic)\0*.pic\0\0";
op.lpstrFile=pa;
op.nMaxFile=260;
op.Flags=OFN_PATHMUSTEXIST | OFN_EXPLORER | OFN_OVERWRITEPROMPT;
if (!GetSaveFileName(&op)) // Dialog zum speichern
return true;
ofstream f(pa);
ShowWindow(progress, SW_NORMAL); //macht er
if (status)
SendMessage(status, SB_SETTEXT, 0, (LPARAM)"Speichern..."); // macht er auch
for (int i=0;i<120000;i++)
{
if (x==300)
{
f << " " << static_cast<int>(pixel[x][y]);
f << " " << 2; // Neue Zeile
x=0;
y++;
}
f << " " << static_cast<int>(pixel[x][y]);
x++;
SendMessage(progress, PBM_STEPIT, 0, 0); // das macht er
}
if (f.fail())
return false;
f.close();
if (status)
SendMessage(status, SB_SETTEXT, 0, (LPARAM)pa); // das macht er auch
SendMessage(progress, PBM_SETPOS, 120000, 0); // hier füllt er die progressbar zu 100%
return true;
}
hier noch die wm_command in der beide funktionen aufgerufen werden
case WM_COMMAND:
{
switch (LOWORD(wparam))
{
case menuitem_save:
if (!WriteArrayToFile(hwnd))
MessageBox(hwnd, "Fehler beim schreiben in die Datei", "Fehler", MB_OK);
break;
case menuitem_close:
SendMessage(hwnd, WM_CLOSE, 0, 0);
break;
case menuitem_new:
clean(hwnd);
break;
case menuitem_\1:
about(hwnd);
break;
case menuitem_black:
case menuitem_red:
SetCheck(hwnd, LOWORD(wparam));
break;
case menuitem_open:
ReadArrayFromFile(hwnd);
break;
}
return 0;
}