В какой студии ты работаешь? Судя по всему в 6ой. Или?
MSVC 2005
Покажи как у тебя определены m_static1? CStatic m_static1;?
Хорошо. Поясню конкретнее.
***************************************************************
Из файла pviewbar.cpp
/////////////////////////////////////////////////////////////////////////////
// CResultViewBar
CResultViewBar::CResultViewBar()
{
b_enabled = TRUE;
m_pBoldFont = new CFont;
}
CResultViewBar::~CResultViewBar()
{
delete m_pBoldFont;
}
void CResultViewBar::DoDataExchange(CDataExchange* pDX)
{
CDialogBar::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CGradientDlg)
DDX_Control(pDX, IDC_STATIC1, m_static1);
DDX_Control(pDX, IDC_STATIC2, m_static2);
DDX_Control(pDX, IDC_STATIC3, m_static3);
DDX_Control(pDX, IDC_STATIC4, m_static4);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CResultViewBar, CDialogBar)
//{{AFX_MSG_MAP(CResultViewBar)
ON_WM_PAINT()
ON_WM_SIZE()
ON_WM_CREATE()
ON_MESSAGE(WM_INITDIALOG, OnInitDialog )
ON_WM_RBUTTONUP()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
Привожу только эту фунцию
LONG CResultViewBar::OnInitDialog ( UINT wParam, LONG lParam)
{
BOOL bRet = HandleInitDialog(wParam, lParam);
if (!UpdateData(FALSE))
{
TRACE0("Warning: UpdateData failed during dialog init.\n");
}
m_pBoldFont->CreateFont(35,0,0,0,900,0,0,0,0,0,0,ANTIALIASED_QUALITY,0,"Arial");
//Use big font and standard colors
m_static1.SetFont(m_pBoldFont);
m_static1.SetWindowText("0000000");
m_static2.SetFont(m_pBoldFont);
m_static2.SetWindowText("0000000");
m_static3.SetFont(m_pBoldFont);
m_static3.SetWindowText("0000000");
m_static4.SetFont(m_pBoldFont);
m_static4.SetWindowText("0000000");
return bRet;
}
****************************************************************8
Из файла pviewbar.h
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// CResultViewBar window
class CResultViewBar : public CDialogBar, public virtual CGraphBaseClass
{
// #define GRAPH_COMBO_CHILD_ID 11005
// #define GRAPH_POINT_LIST_CHILD_ID 11006
// Construction
public:
CResultViewBar();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Attributes
public:
CGraphComboBox graph_combo_box;
// C3DListCtrl point_list_ctrl;
BOOL b_enabled;
CFont *m_pBoldFont;
CStatic m_static1;
CStatic m_static2;
CStatic m_static3;
CStatic m_static4;
// Operations
public:
virtual void AppendMenuItems(CMenu* menu);
virtual void OnRBMenuCommand(UINT command_id);
void SetResult();
// Overrides
..........................................................
Также есть некий класс CTest_grafixView, который делает расчёт данных
И мне нужно, чтобы результат этого расчёта выводился в CResultViewBar на контрол типа CStatic с заданным при инициализации DialogBar шрифтом
****************************************************
Из файла test_grafixView.cpp
void CTest_grafixView::OnGraphStartCapture()
{
pResultViewBar->SetResult();
}
****************************************************
Из файла test_grafixView.h
class CTest_grafixView : public CView
{
protected: // create from serialization only
CTest_grafixView();
DECLARE_DYNCREATE(CTest_grafixView)
// Attributes
public:
CTest_grafixDoc* GetDocument();
CGraphWnd graph_wnd;
CResultViewBar *pResultViewBar;
....................................................
И при выполнении pResultViewBar->SetResult();
Возникает ошибка в модуле winocc.cpp, line 246
Т.е получается, что элементы CStatic m_static1 не определяются как окна.
Окно класса CResultViewBar создается в функции
int CGraphFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
Каким образом можно передать данные из CTest_grafixView на элементах CStatic из CResultViewBar и отобразить в диалоге
?