someone_ smiley
someone_ smiley

Reputation: 1066

What are the differences between FormView and Dialog in MFC?

What are the differences between FormView and Dialog in MFC? and can anyone suggest when to use FormView and when to use Dialog?

Upvotes: 5

Views: 7080

Answers (4)

JohnCz
JohnCz

Reputation: 1609

someone_ smiley

To answer your question about dialog versus CFormView.

I rarely use dialog-based application; only in cases that require simple tasks without overhead of more complicated UI.

Most of programmers start with dialog based app and after getting into implementing some functionality, it usually turns that the application needs menu and a toolbar and status bar, data storing/handling object, command routing handling and so on.

I would suggest creating SDI application with non-resizable frame.

You will have a dialog look and all the functionality of the MFC application free. You do not have to use document support if you do not need one.

Upvotes: 2

JohnCz
JohnCz

Reputation: 1609

I have to respectfully disagree with posts above. There is no difference between CFormView and a dialog.

CFormView is a dialog created as modeless and hosted by the frame as a client, resized as frame resize. It is created from dialog resource you have to supply, as any standalone dialog. All message handlers for dialog controls are the same.

CFormView Create member calls CreateDlg, passing dialog template loaded by the constructor. CWnd CreateDialog, calls CreateDlgIndirect member that in turn calls CreateDialogIndirect API creating modeless dialog.

You can also embed modeless dialog inside another dialog and it is still a dialog.

Upvotes: 4

9dan
9dan

Reputation: 4282

From the coders view point, FormView supports laying out of UI controls with dialog resource, in WYSIWYG way. So when making a view with a lots of controls FormView could be helpful.

Dialog is not a view. It is totally different. Dialogs are separate windows and normally presented in the modal event loop (or modelessly in special cases).

Upvotes: 1

Jerry Coffin
Jerry Coffin

Reputation: 490148

A dialog application just shows a dialog (and whatever controls you put in the dialog, plus any other controls you pop up from it, etc.)

A FormView gives you a fairly normal application with a main menu and such -- but the view part can also hold controls.

You'd use a dialog if you just want a dialog, and a formview if you want (possibly multiple) views that can hold controls. Big difference is that making it a dialog changes the basic nature of the entire application, where a formview just changes one view -- you could (for example) also have other (non-form) views if you wanted.

Upvotes: 2

Related Questions