Evo sam uspjeo da smanjim kod koji je problematican, dakle kada kliknem na browse dugme dialoga, onda mi se sve to pojebe.
Code:
case IDC_BROWSE:
ni.info.ofn.lStructSize = sizeof(OPENFILENAME);
ni.info.ofn.hwndOwner = hwnd;
ni.info.ofn.hInstance = hInst;
ni.info.ofn.Flags = OFN_FILEMUSTEXIST;
ni.info.ofn.lpstrDefExt = "*.*";
ni.info.ofn.lpstrFile = ni.info.ofnfilelocation;
ni.info.ofn.lpstrFileTitle = ni.info.ofnfilename;
ni.info.ofn.lpstrTitle = "File Browser!";
ni.info.ofn.lpstrFilter = "All Files (*.*)\0*.*\0";
ni.info.ofn.nMaxFile = MAX_PATH;
ni.info.ofn.nMaxFileTitle = 100;
GetOpenFileName(&ni.info.ofn);
SendMessage(ni.hwnd.itemFrom, WM_SETTEXT, NULL, (LPARAM)ni.info.ofnfilename);
break;
A evo kako klasa izgleda:
Code:
class NEWITEMINFO
{
public:
NEWITEMINFO(){;};
~NEWITEMINFO(){;};
OPENFILENAME ofn;
char writing[500];
char ofnfilename[100];
char ofnfilelocation[MAX_PATH];
char myfilename[100];
int nCategory;
};
hInst je takodje globalna HINSTANCE, hwnd prozor dialoga, a ni.hwnd.itemFrom je edit kontrola sa dialoga.
Dakle sta ovdje moze da pravi gorespomenute probleme ?
Napominjem, prvi put kada udjem u taj dialog, mogu dakle pozivati koliko god hocu browse, i snimati u fajl, dugmetom save, i sve je ok, al' cim napustim, taj dialog, sve se pobrlja, a ako ga napustim, a da nisam kliknuo na browse, onda je sve ostalo normalno.
Evo i Exit koda:
Code:
case IDCANCEL:
ZeroMemory(ni.info.ofnfilename, 100);
ZeroMemory(ni.info.ofnfilelocation, MAX_PATH);
ZeroMemory(ni.info.myfilename, 100);
EndDialog(hwnd, 0);
break;