SaveFileDialog proponowana nazwa pliku z góry

SaveFileDialog proponowana nazwa pliku z góry
wilkwielki
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 683
0

pierw kod:

Kopiuj
#include <windows.h>
#include <iostream.h>
#include <commdlg.h>
#include <tchar.h>

using namespace std;


char *SaveFileDialog(HWND owner, DWORD maxFilePath) {
    OPENFILENAME ofn;       // common dialog box structure
    TCHAR szFile[MAX_PATH]; // buffer for file name

    // Initialize OPENFILENAME
    ZeroMemory(&ofn, sizeof(ofn));
    ofn.lStructSize = sizeof(ofn);
    ofn.hwndOwner = owner;
    ofn.lpstrFile = szFile;
    ofn.lpstrFile[0] = '\0';
    ofn.nMaxFile = sizeof(szFile);
    ofn.lpstrFilter = _T("All Files\0*.*\0Text Files\0*.TXT\0");
    ofn.nFilterIndex = 1;
    ofn.lpstrFileTitle = NULL;
    ofn.nMaxFileTitle = 0;
    ofn.lpstrInitialDir = NULL;
    ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

    // Display the Open dialog box
    if (GetSaveFileName(&ofn) == TRUE) 
	{
        return ofn.lpstrFile;
    } else 
	{
        return NULL;
    }
}
int main(int argc, char* argv[])
{
	char *data=SaveFileDialog(NULL,NULL);
	if(data!=NULL)
	{
		cout << data << endl;
		delete data;
	}
	else
		cout << "NULL" << endl;
}

jak wyświetli sie okno to czy mozna w nazwie pliku ustawic na wejsciu proponowaną nazwe pilku zeby nie wpisywac recznie czy tez zaznaczac inny plik

screenshot-20250117174929.png

PU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0
Kopiuj
ofn.lpstrFile = szFile; // tu przypisujesz pointer do buffora z nazwą pliku.
// ofn.lpstrFile[0] = '\0'; // to zakomentuj gdyż wymazuje ci całą nazwę pliku

W tym buforze szFile przypisz jakąś nazwę pliku i ona się wyświetli w dialogu, a jak wybierzesz jakiś inny plik to się nadpisze.

wilkwielki
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 683
0

spoko , dzięki 😀

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.