Ich habe Struktur: PrintChooseDlg.hFehler C2309: ist kein Mitglied von CDialog
#ifndef PRINTCHOOSEDLG_H
#define PRINTCHOOSEDLG_H
#include <string>
#pragma once
#endif
class CPrintChooseDlg : public CDialog
{
public:
int choosing;
/*afx_msg void OnPrinter1();
afx_msg void OnPrinter2();*/
CPrintChooseDlg(CWnd* pParent = NULL);
enum { IDD = IDD_PRINTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX);
protected:
//afx_msg void OnPrinter1();
//afx_msg void OnPrinter2();
virtual void OnPrinter1();
virtual void OnPrinter2();
DECLARE_MESSAGE_MAP()
};
und PrintChooseDlg.cpp
// PrintChoose.cpp : implementation file
//
#include "stdafx.h"
#include "Tungsten.h"
#include "PrintChooseDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
// PrintChoose
//IMPLEMENT_DYNAMIC(PrintChoose, CWnd)
CPrintChooseDlg::CPrintChooseDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPrintChooseDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CChooseLabelDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CPrintChooseDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CChooseLabelDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPrintChooseDlg, CDialog)
ON_BN_CLICKED(IDC_PRINTER1,OnPrinter1)
ON_BN_CLICKED(IDC_PRINTER2,OnPrinter2)
END_MESSAGE_MAP()
// PrintChoose message handlers
void CPrintChooseDlg::OnPrinter1()
{
choosing=0;
CDialog::OnPrinter1();
}
void CPrintChooseDlg::OnPrinter2()
{
choosing=1;
CDialog::OnPrinter2();
}
und in der Hauptdatei, wo ich von leite, i definieren die folgenden Überschriften:
#include "stdafx.h"
#include "Tungsten.h"
#include "TungstenDlg.h"
using namespace std;
#include<sstream>
#include <string>
Das Problem ist, ich bin immer folgende Fehlermeldungen erhalten: Fehler C2039: ‚OnPrinter1‘: ist kein Mitglied Fehler C2039 von ‚CDialog‘: ‚OnPrinter2‘: ist kein Mitglied von ‚CDialog‘
Was ich versuchte #include <string>
an meinem Kopf hinzuzufügen ist und stellen Sie sicher, dass die Header nicht wiederholt werden, und die Definition Printer1 und Pronter 2 in der Hauptdatei, in der ich renne, aber ich bekomme immer noch den gleichen Fehler. Ich schätze Ihre Hilfe. Danke im Voraus
Die Nachricht ist ziemlich beschreibend, 'CDialog' hat keine Funktion' OnPrinter1', so dass Sie 'CDialog :: OnPrinter1' nicht aufrufen können. – StoryTeller
Ich bin ein Anfänger in C++. Ist nicht virtuell void OnPrinter1(); ist eine Funktion innerhalb der Klasse? – Mike
Es ist eine Funktion in ** CPrintChooseDlg **, nicht ** CDialog **. Als eine Analogie, nur weil eine Person weiß, etwas zu tun, bedeutet nicht, dass ihre Eltern tun. – StoryTeller