Save, Open, Print Dialog Boxes

Hello,
I need some help with getting Save, Open, and Print Dialog Boxes to work in an MFC Dialog based program.  Or if this is not possible please let me know.  Thank You.
hartman2Asked:
Who is Participating?
 
MaxPConnect With a Mentor Commented:
A simple example, usable, but not very sophisticated:

      HANDLE      FileHandle;
      BYTE*      pBytes;
      CString      FileName;

Now open a FileDialog for "Save As" (1st parameter FALSE)

      CFileDialog FileDialog( FALSE, ".bmp", NULL, NULL,
                        "Bitmap Files (*.bmp)|*.bmp||",
                        NULL );

      if (FileDialog.DoModal() != IDOK) return; // means User pressed "Cancel"

      FileName = FileDialog.GetPathName();

Now you've got your Filename; open the file and get a handle to it.

      FileHandle = CreateFile(FileName,
                        GENERIC_READ | GENERIC_WRITE,
                        (DWORD) 0,
                        (LPSECURITY_ATTRIBUTES) NULL,
                        CREATE_ALWAYS,
                        FILE_ATTRIBUTE_NORMAL,
                        (HANDLE) NULL );

      if (FileHandle == INVALID_HANDLE_VALUE)
      {
            MessageBox("Failed to create file!", "OK", MB_OK);
            return;
      }

Now write your data.
0
 
mikeblasCommented:
It's quite possible. Just use CFileDialog and CPrintDialog.

.B ekiM


0
 
hartman2Author Commented:
I need to know what the actual code has to be.  Because I am not familiar with that function.
0
Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

 
chensuCommented:
Search the MFC Samples for it.
0
 
hartman2Author Commented:
Where are the MFC Samples
0
 
chensuCommented:
They come with your Visual C++.
0
 
hartman2Author Commented:
To bemore clear I have the code but I don't understand how to set
BOOL bOpenFileDialog
to true or false.
0
 
chensuCommented:
bOpenFileDialog   Set to TRUE to construct a File Open dialog box or FALSE to construct a File Save As dialog box.

0
 
hartman2Author Commented:
This is an excellent answer.  Thank you very much.
0
 
MaxPCommented:
Less than excellent, but thank you anyway. Maybe you should take a look at the documentation for CFileDialog, and its member variables (m_ofn, especially), for a more failsafe and detailed approach.
0
 
hartman2Author Commented:
MaxP
To save data into the file that is created would I just use the serialize command and then the IOstoring command or is there a better/ easier why to do it.
0
 
MaxPCommented:
Depends on the kind of data you want to write to your file. Given the FileHandle as in the example above, you might just use WriteFile(FileHandle, etc.). Seems the easiest approach to me if you write e.g. a Bitmap-File.

0
 
hartman2Author Commented:
I am saving text and numbers to the file.  What should I do in your opinion.
0
 
MaxPCommented:
I'm really not familiar with serialization, I haven't used it up to now. In my therefore not very expert opinion, it seems a good method for storing objects in a file.
What you seem to be about to do is just store plain data, using your own file format. So, if you're sure about your format (e.g., how will your program know what kind of data is where when it attempts to read the file?), I would probably write it as plain data 'as is'.
I'd recommend to seriously consider the possible variations of reading that file again before deciding how to write it. The data amount shoud be one topic of your considerations, as well as possible write or read errors and how to handle them.
But I'm afraid I can't even guess what could be the best way for you before knowing a few details about your program.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.