Как я могу вставить System.windows.forms.datagridview в свой диалог?

#mfc #datagridview #dialog

#mfc #datagridview #диалог

Вопрос:

Я хочу вставить datagridview в свой диалог.

Итак, я добавил его, после этого произошла ошибка 15. Почему это так?

Вот код.

 // AccessDlg.h : header file
//

#pragma once
#include "stdafx.h"

// CAccessDlg dialog
class CAccessDlg : public CDialog
{
// Construction
public:
    CAccessDlg(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
    enum { IDD = IDD_ACCESS_DIALOG };

    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

    CWinFormsControl<System::Windows::Forms::DataGridView> m_DataGridView;

// Implementation
protected:
    HICON m_hIcon;

    // Generated message map functions
    virtual BOOL OnInitDialog();
    afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();
    DECLARE_MESSAGE_MAP()
};

void CAccessDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    DDX_ManagedControl(pDX, IDC_GridView, m_DataGridView);
}
  

Ошибка такая.

 error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C   does not support default-int
error C3083: 'Windows': the symbol to the left of a '::' must be a type
error C3083: 'Forms': the symbol to the left of a '::' must be a type
error C2039: 'DataGridView' : is not a member of 'System'
error C2238: unexpected token(s) preceding
  

Ответ №1:

Вы включаете afxwinforms.h? Вы должны были добавить следующее в stdafx.h

 #include <afxwinforms.h>