ÇáãÓÇÚÏ ÇáÔÎÕí ÇáÑÞãí

ãÔÇåÏÉ ÇáäÓÎÉ ßÇãáÉ : Modeles , Modal dialog window and variable



C++ Programming
04-07-2009, 03:21 PM
How do give ( pass, transmit) value of variable
m_sPP_modal
From class modal window “CAdodc_MDI”
To variable
m_sPP_modeless
of modeless class “CMyModeless2”
and on the contrary - from class “CMyModeless2”
to class modal window “CAdodc_MDI ?

below 2 lines isn’t correctly into button ‘OK’ of modal window:
CMyModeless2 dlg2;
dlg2.m_sPP_modeless = L“text”;

below brief:
/////////////////////////////////////////
// Adodc_MDI.cpp : implementation file

#include "stdafx.h"
#include "ADO_MDI.h"
#include "Adodc_MDI.h"
#include "MyModeless2.h"

class CAdodc_MDI : public CDialog
{
CString m_sPP_modal = _T("text in Modal window");
}
//////////////////////////////////////

MyModeless2.cpp : implementation file

#define WM_GOODBYE WM_USER + 100
class CMyModeless2 : public CDialog
{
CString m_sPP_modeless = _T("text in Modeless window");
}
//////////////////////////////////////

// ADO_MDIView.cpp : implementation of the CADO_MDIView class
//
#include "stdafx.h"
#include "ADO_MDI.h"

#include "ADO_MDIDoc.h"
#include "CntrItem.h"
#include "ADO_MDIView.h"

#include "MyModeless2.h"
#include "Adodc_MDI.h"

LRESULT CADO_MDIView::OnGoodbye(WPARAM wParam, LPARAM lParam)
{ }
void CADO_MDIView::OnLButtonDown(UINT nFlags, CPoint point)
{ }
void CADO_MDIView::OnRButtonDown(UINT nFlags, CPoint point)
{ }
///////////////////////////////////////////////
///////////////////////////////////////////////

Below MORE DETAIL:

"MyModeless2.h"

#pragma once
#include "afxwin.h"
// CMyModeless2 dialog
#define WM_GOODBYE WM_USER + 100
class CMyModeless2 : public CDialog
{
DECLARE_DYNAMIC(CMyModeless2)
public:
CMyModeless2(CWnd* pParent = NULL); // standard constructor
virtual ~CMyModeless2();
// Dialog Data
enum { IDD = IDD_DIALOG4 };
CString m_sPP_modeless;
CView* m_pView;
CMyModeless2(CView* pView);
afx_msg void OnBnClickedButton3();
BOOL Create(void);
protected:
virtual void OnOK();
virtual void OnCancel();
public:
afx_msg void OnBnClickedOk();
afx_msg void OnBnClickedCancel();
};

/////////////////////////////////////

MyModeless2.cpp

#include "stdafx.h"
#include "ADO_MDI.h"
#include "MyModeless2.h"
// CMyModeless2 dialog

IMPLEMENT_DYNAMIC(CMyModeless2, CDialog)

CMyModeless2::CMyModeless2(CWnd* pParent /*=NULL*/)
: CDialog(CMyModeless2::IDD, pParent)
, m_sPP_modeless(_T(""))
void CMyModeless2::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT3, m_sPP_modeless);
}
BEGIN_MESSAGE_MAP(CMyModeless2, CDialog)
ON_BN_CLICKED(IDC_BUTTON1, &CMyModeless2::OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON2, &CMyModeless2::OnBnClickedButton2)
ON_BN_CLICKED(IDC_BUTTON3, &CMyModeless2::OnBnClickedButton3)
ON_BN_CLICKED(IDOK, &CMyModeless2::OnBnClickedOk)
ON_BN_CLICKED(IDCANCEL, &CMyModeless2::OnBnClickedCancel)
END_MESSAGE_MAP()

CMyModeless2::CMyModeless2(CView* pView)
{
m_pView = pView;
}
BOOL CMyModeless2::Create(void)
{
return CDialog::Create(CMyModeless2::IDD);
}

void CMyModeless2::OnOK()
{
if (m_pView != NULL) {
m_pView->PostMessage(WM_GOODBYE, IDOK);
}
else {
CDialog::OnOK(); // modal case
}
CDialog::OnOK();
}
void CMyModeless2::OnCancel()
{
if (m_pView != NULL) {
// modeless case -- do not call base class OnCancel
m_pView->PostMessage(WM_GOODBYE, IDCANCEL);
}
else {
CDialog::OnCancel(); // modal case
}
}
void CMyModeless2::OnBnClickedOk()
{
OnOK();
}
void CMyModeless2::OnBnClickedCancel()
{
OnCancel();
}
///////////////////////////////////////////

ADO_MDIView.h

// ADO_MDIView.h : interface of the CADO_MDIView class

#pragma once
class CMyModeless2;
class CADO_MDIView : public CScrollView
{
protected: // create from serialization only
CADO_MDIView();
DECLARE_DYNCREATE(CADO_MDIView)
// Attributes
public:
CADO_MDIDoc* GetDocument() const;
// Overrides
public:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual void OnInitialUpdate(); // called first time after construct
// Implementation
public:
virtual ~CADO_MDIView();
protected:
// Generated message map functions
protected:
afx_msg void OnDestroy();
DECLARE_MESSAGE_MAP()
public:
CMyModeless2* m_pModeless;
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
LRESULT OnGoodbye(WPARAM wParam, LPARAM lParam);

};

//////////////////////////////////////////////

// ADO_MDIView.cpp : implementation of the CADO_MDIView class
#include "stdafx.h"
#include "ADO_MDI.h"

#include "ADO_MDIDoc.h"
#include "CntrItem.h"
#include "ADO_MDIView.h"

#include "MyModeless2.h"
#include "Adodc_MDI.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// CADO_MDIView
IMPLEMENT_DYNCREATE(CADO_MDIView, CScrollView)

BEGIN_MESSAGE_MAP(CADO_MDIView, CScrollView)
ON_MESSAGE(WM_GOODBYE, OnGoodbye)
ON_WM_DESTROY()
ON_WM_LBUTTONDOWN()
ON_WM_RBUTTONDOWN()
END_MESSAGE_MAP()

// CADO_MDIView construction/destruction

CADO_MDIView::CADO_MDIView()
: m_pModeless(NULL)
, m_sReceivingFromModeless1(_T(""))
{
m_pModeless = new CMyModeless2(this);
}

CADO_MDIView::~CADO_MDIView()
{
delete m_pModeless;
}

void CADO_MDIView::OnDestroy()
{
// Deactivate the item on destruction; this is important
// when a splitter view is being used
COleClientItem* pActiveItem = GetDocument()->GetInPlaceActiveItem(this);
if (pActiveItem != NULL && pActiveItem->GetActiveView() == this)
{
pActiveItem->Deactivate();
ASSERT(GetDocument()->GetInPlaceActiveItem(this) == NULL);
}
CScrollView::OnDestroy();
}
void CADO_MDIView::OnLButtonDown(UINT nFlags, CPoint point)
{
if (m_pModeless->GetSafeHwnd() == 0)
{
m_pModeless->Create();
}
}

void CADO_MDIView::OnRButtonDown(UINT nFlags, CPoint point)
{
m_pModeless ->DestroyWindow();
}

LRESULT CADO_MDIView::OnGoodbye(WPARAM wParam, LPARAM lParam)
{
m_pModeless->m_sPP_modeless;
m_pModeless->DestroyWindow();
return 0L;
}
/////////////////////////////////////////////
Adodc_MDI.h

#pragma once
#include "afxcmn.h"

class CAdodc_MDI : public CDialog
{
DECLARE_DYNAMIC(CAdodc_MDI)

public:
CAdodc_MDI(CWnd* pParent = NULL); // standard constructor
virtual ~CAdodc_MDI();
enum { IDD = IDD_ADODC };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
CListCtrl* m_pListCtrl;
_ConnectionPtr m_pConn2;
CString m_sPP;
afx_msg void OnHdnItemclickList1(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnBnClickedOk();
int col;
int row;
private:
};

////////////////////////////////////////