Здравствуйте, febus, Вы писали:
F>Создай новый проект и выбери в визарде (вместо стандартного CView по умолчанию) вид CEditView.
F>Все, задание выполнено
О, да! спасибо! волшебные волшебники рулят!
теперь возникла следующая проблемка:
я делаю новый диалог, в него я могу вводить текст(Edit Control). Теперь нужно что бы этот текст при нажатии на ОК выводился в главном окне. Когда был просто класс CView я это сделал, но при использовании CEditView в нем пропал метод
virtual void OnDraw(CDC* pDC);
Ну я думал добавлю его, сделаю как при CView и будет все нормально, но нет. Все хорошо компилится но не работает, не выводится этот текст в главное окно.
Я добавлял следующий код:
мой диалог
"FromDlgToWindow.срр"
#include "stdafx.h"
#include "mylab.h"
#include "FromDlgToWindow.h"
#include ".\fromdlgtowindow.h"
// CFromDlgToWindow dialog
IMPLEMENT_DYNAMIC(CFromDlgToWindow, CDialog)
CFromDlgToWindow::CFromDlgToWindow(CWnd* pParent /*=NULL*/)
: CDialog(CFromDlgToWindow::IDD, pParent)
//////////////////////////////
, m_text(_T(""))
//////////////////////////////
{
}
CFromDlgToWindow::~CFromDlgToWindow()
{
}
void CFromDlgToWindow::DoDataExchange(CDataExchange* pDX)
{ CDialog::DoDataExchange(pDX);
//////////////////////////////////////////////
DDX_Text(pDX, IDC_EDIT1, m_text);
//////////////////////////////////////////////
}
BEGIN_MESSAGE_MAP(CFromDlgToWindow, CDialog)
////////////////////////////////////
ON_BN_CLICKED(IDOK, OnBnClickedOk)
///////////////////////////////////
END_MESSAGE_MAP()
////////////////////////////////////
void CFromDlgToWindow::OnBnClickedOk()
{
UpdateData(true);
OnOK();
}
///////////////////////////////////////
"FromDlgToWindow.h"
#pragma once
#include "afxwin.h"
// CFromDlgToWindow dialog
class CFromDlgToWindow : public CDialog
{ DECLARE_DYNAMIC(CFromDlgToWindow)
public:
CFromDlgToWindow(CWnd* pParent = NULL); // standard constructor
virtual ~CFromDlgToWindow();
// Dialog Data
enum { IDD = IDD_DIALOG1 };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
public:
/////////////////////////////////////////
afx_msg void OnBnClickedOk();
CString m_text;
/////////////////////////////////////////
};
и далее следующее
"mylabDoc.h"
class CmylabDoc : public CDocument
{ .....
// Attributes
public:
///////////////////////////////////////////////////////////
CString StringData;
////////////////////////////////////////////////////////////
....}
"mylabDoc.cpp"
....
CmylabDoc::CmylabDoc()
{
////////////////////////////////////////////////////////////
StringData="";
//////////////////////////////////////////////////////////////
}
....
"mylabView.cpp"
добавил OnDraw (прототип не забыл в mylabView.h кинуть)
.......
void CmylabView::OnDraw(CDC* pDC)
{ CmylabDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
///////////////////////////////////////////
pDC->TextOut(0,0,pDoc->StringData
///////////////////////////////////////////
}
......
#include "FromDlgToWindow.h"
void CmylabView::OnDialog1()
{
CFromDlgToWindow t;
int result=t.DoModal();
if (result==IDOK)
{CmylabDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
pDoc->StringData=t.m_text;
Invalidate();
//t1.DoModal();
}
}
ну так вот, помогите сделать что бы работало, плз.в чем ошибка?
и еще, при использовании CEditView куда записывается тот текст который мы можем вводить в главном окне?
мне нужно будет вывести этот текст в другой диалог.(обратное дейсвие вышеопсанному

)
заранее спасибо