Я использую SmartGraph Элемент управления ActiveX в моем проекте (Visual Studio 2015, MFC, C ++). Он был успешно зарегистрирован.
Я пытаюсь вписать диалог с этим элементом управления в CFormView
MyAppView.h:
#pragma once
#include "SmartGraph.h"#include "afxwin.h"
class CMyAppView : public CFormView
{
protected: // create from serialization only
CMyAppView();
DECLARE_DYNCREATE(CMyAppView)
enum { IDD = IDD_DIALOG1 };
CSmartGraph m_Graph; //!!!!! ActiveX control variable
CButton m_ctrlOK;
....
}
MyAppView.cpp:
....
void CMyAppView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
DDX_Control(pDX, IDOK, m_ctrlOK);
DDX_Control(pDX, IDC_SMARTGRAPH1, m_Graph);
}
void CMyAppView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
ResizeParentToFit();
m_Graph.SetParentWnd(this->m_hWnd);
m_Graph.SetPlotType(0);
m_Graph.put_xLable(_T("Time"));
m_Graph.put_yLable(_T("Amplitude"));
m_Graph.put_Title(_T("Graph Test"));
}
...
Таким образом, m_Graph имеет значение NULL, а SmartGraph не отображается в диалоговом окне. В то же время переменная кнопки OK не равна NULL и отображается правильно.
Что я делаю не так?
Вам необходимо создать экземпляр этого объекта. m_Graph.CreateControl (…);
Других решений пока нет …