//Modeless Dialog example
//Microsoft Developer Studio generated resource script.
/////////////////////////////////////////////////////////////////////////////
//
/*
IDD_DIALOG DIALOG DISCARDABLE  0, 0, 186, 90
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Modal Dialog"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,129,7,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,129,24,50,14
END

IDD_DIALOG1 DIALOG DISCARDABLE  0, 0, 186, 90
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Modeless Dialog"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,129,7,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,129,24,50,14
END
*/
/////////////////////////////////////////////////////////////////////////////
//
#include <afxwin.h>
#include "resource.h"

class CSimpleApp : public CWinApp
{
public:
BOOL InitInstance();
};
class CMainFrame : public CFrameWnd
{
public:
void refreshwindows(WPARAM, LPARAM );
CMainFrame();
afx_msg void modalButtonClick();
afx_msg void modelessButtonClick();
DECLARE_MESSAGE_MAP()
CButton modelessButton;
CButton modalButton;
COLORREF wcolor;
};
//modal dilog class
class CSampleModalDialog : public CDialog {
public:
//COLORREF newcolor;//constains window background colour
CSampleModalDialog();
DECLARE_MESSAGE_MAP()
};
//modal dilog class constructor initialised with the ID of dialogue box resource
CSampleModalDialog::CSampleModalDialog():CDialog(IDD_DIALOG ) 
{
}
//modeless dilog class
class CSampleModelesslDialog : public CDialog {
public:
 CSampleModelesslDialog() : CDialog(){}
//COLORREF newcolor;
DECLARE_MESSAGE_MAP()
CButton Button;
};

BOOL CSimpleApp::InitInstance(){
m_pMainWnd = new CMainFrame();
m_pMainWnd->ShowWindow(m_nCmdShow);
return true;
}

CMainFrame::CMainFrame()
{
Create(NULL, "MFC Dialog",WS_OVERLAPPEDWINDOW ,CRect(25,25,410,200));
modalButton.Create ("Modal dialog",BS_DEFPUSHBUTTON|  WS_CHILD | WS_VISIBLE  , CRect(12,12,150,62), this,BUTTON_MODAL);
modelessButton.Create ("Modaless dialog",BS_DEFPUSHBUTTON|  WS_CHILD | WS_VISIBLE  , CRect(12,70,150,120), this,BUTTON_MODELESS );
}

//main window message map
BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)
ON_BN_CLICKED(BUTTON_MODAL,modalButtonClick)
ON_BN_CLICKED(BUTTON_MODELESS,modelessButtonClick)
END_MESSAGE_MAP()
//modal dialog message map 
BEGIN_MESSAGE_MAP(CSampleModalDialog,CDialog)
END_MESSAGE_MAP()
//modeless dialog message map
BEGIN_MESSAGE_MAP(CSampleModelesslDialog,CDialog)
END_MESSAGE_MAP()
CSimpleApp MFCApp1;
//creates modal dialogue box
afx_msg void CMainFrame::modalButtonClick()
{
CSampleModalDialog myDlg1;
myDlg1.DoModal();
}
//creates modeless dialogue box
afx_msg void CMainFrame::modelessButtonClick()
{
CSampleModelesslDialog *m_dlg=new CSampleModelesslDialog();
m_dlg->Create(IDD_DIALOG1 );
m_dlg->ShowWindow(SW_SHOW);
}