How to load resource dialog template into my FormView Application?

I Write a SDI Formview App.and I put a "Next" button on the FormView.I wanna user click the button and goto next page:A new FormView,Step2 dialog.
I have design this step 2 dialog in resource.and how to load it when click "Next" button????
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

su185Connect With a Mentor Commented:
You can build your dialogue to a viewclass and,do some works in your Frame_class .
The key is some functions as AddView and SetWindowsLong(and other same usage function is setdlgid),etc.
In fact,you can find your anwser in MSDN.
this will help you very much. :)
Call this function to attach a view to the document.

void AddView(
   CView* pView
Points to the view being added.
This function adds the specified view to the list of views associated with the document; the function also sets the view's document pointer to this document. The framework calls this function when attaching a newly created view object to a document; this occurs in response to a File New, File Open, or New Window command or when a splitter window is split.

Call this function only if you are manually creating and attaching a view. Typically you will let the framework connect documents and views by defining a CDocTemplate object to associate a document class, view class, and frame window class.

// The following example toggles two views in an SDI (single document
// interface) frame window. A design decision must be made as to
// whether to leave the inactive view connected to the document,
// such that the inactive view continues to receive OnUpdate
// notifications from the document. It is usually desirable to
// keep the inactive view continuously in sync with the document, even
// though it is inactive. However, doing so incurs a performance cost,
// as well as the programming cost of implementing OnUpdate hints.
// It may be less expensive, in terms of performance and/or programming,
// to re-sync the inactive view with the document only with it is
// reactivated. This example illustrates this latter approach, by
// reconnecting the newly active view and disconnecting the newly
// inactive view, via calls to CDocument::AddView and RemoveView.

BOOL CMainFrame::OnViewChange(UINT nCmdID)
// There is an ON_COMMAND_RANGE message map entry associated with
// OnViewChange:
 CView* pViewAdd;
 CView* pViewRemove;
 CDocument* pDoc = GetActiveDocument();

 if((nCmdID == ID_VIEW_VIEW1) && (m_currentView == 1))
 if((nCmdID == ID_VIEW_VIEW2) && (m_currentView == 2))

 if (nCmdID == ID_VIEW_VIEW2)
  if (m_pView2 == NULL)
   m_pView1 = GetActiveView();
   m_pView2 = new CMyView2;

//Note that if OnSize has been overridden in CMyView2
//and GetDocument() is used in this override it can
//cause assertions and, if the assertions are ignored,
//cause access violation.
   m_pView2->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
      rectDefault, this, AFX_IDW_PANE_FIRST + 1, NULL);
   pViewAdd = m_pView2;
   pViewRemove = m_pView1;
   m_currentView= 2;
  pViewAdd = m_pView1;
  pViewRemove = m_pView2;
  m_currentView= 1;
// Set the child i.d. of the active view to AFX_IDW_PANE_FIRST,
// so that CFrameWnd::RecalcLayout will allocate to this
// "first pane" that portion of   the frame window's client area
// not allocated to control   bars.  Set the child i.d. of the
// other view to anything other than AFX_IDW_PANE_FIRST; this
// examples switches the child id's of the two views.

 int nSwitchChildID = pViewAdd->GetDlgCtrlID();

 // Show the newly active view and hide the inactive view.


 // Connect the newly active view to the document, and
 // disconnect the inactive view.


Create a CFormView class for the Step2 Dialog.

The following is a function I wrote in MainFrame which will switch the view corresponding to menu command.  You can associate that this function with your "next" button action.

CView* CMainFrame::SwitchView(CView* pNewView)
  CView* pActiveView =GetActiveView();
  // Exchange view window ID's so RecalcLayout() works.
  #ifndef _WIN32
  UINT temp = ::GetWindowWord(pActiveView->m_hWnd, GWW_ID);
  ::SetWindowWord(pActiveView->m_hWnd, GWW_ID,
    ::GetWindowWord(pNewView->m_hWnd, GWW_ID));
  ::SetWindowWord(pNewView->m_hWnd, GWW_ID, temp);
  UINT temp = ::GetWindowLong(pActiveView->m_hWnd, GWL_ID);
  ::SetWindowLong(pActiveView->m_hWnd, GWL_ID,
    ::GetWindowLong(pNewView->m_hWnd, GWL_ID));
  ::SetWindowLong(pNewView->m_hWnd, GWL_ID, temp);


  return pActiveView;
suvconAuthor Commented:
I Get it~!!!Thank you!!
All Courses

From novice to tech pro — start learning today.