Deklaration von variablen

SiS-Shadowman

Grünschnabel
ich hab gerade ein c++ tut gelesen und wollte eine der ersten übungen machen, jedoch habe ich ein problem bei der initialisierung der variablen.
ich kenne das nur as vb 6.0 wo ich ein private blub as int schreiben musste.
aber wie is das bei c++? (ich verwende vc++)

ich bräuchte z.b. m_iPrevY als integer sowie miPrevX als integer.

wie geht das?

danke schon im vorraus :)
 
Hilft dir das weiter

#include "stdafx.h"

int main()
{
int zahl;
int zahl2 = 3;

zahl = 4;

printf("%i",zahl);
printf("%i",zahl2);

return 0;
}
 
ja nur irgendwie packt vc++ noch von haus aus 100 zeilen in den code, da finde ich kein int main ^^
muss ich das einfach bei dem laden des formulars reinschreiben? also bei onload?
 
printf ist nur für die ausgabe.. (man kann aber auch "cout" verwenden)
 
Kannst ja ein "Leeres Projekt" erstellen.
Dann musst du zusätzlich noch eine CPP Datei erstellen.
Dafür ist die dan leer.
 
jo, aba wo pack ich das int variable; hin?
also ich arbeite nich mit nem eingabefenster, is ne dialog basierende anwendung...

da sind halt am anfangen so classen deklarationen oder so (das zeugs versteh ich noch nich alles ^^)
ich find halt keinen teil wo ich die variablen hinpacken soll. wenn du willst poste ich mal den code (sind aba 200 zeilen ^^, obwohl ich nur 20 geschrieben hab...)
 
Code:
// Tag3Dlg.cpp : implementation file
//

#include "stdafx.h"
#include "Tag3.h"
#include "Tag3Dlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTag3Dlg dialog

CTag3Dlg::CTag3Dlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTag3Dlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTag3Dlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CTag3Dlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTag3Dlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CTag3Dlg, CDialog)
	//{{AFX_MSG_MAP(CTag3Dlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_WM_MOUSEMOVE()
	ON_WM_LBUTTONDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTag3Dlg message handlers

BOOL CTag3Dlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CTag3Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CTag3Dlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the iconw
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CTag3Dlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CTag3Dlg::OnMouseMove(UINT nFlags, CPoint point) 
{
	if ((nFlags & MK_LBUTTON) == MK_LBUTTON) {
		CClientDC dc(this);
		
		dc.MoveTo(m_iPrevX, m_iPrevY);
		dc.LineTo(point.x, point.y);

		m_iPrevX = point.x;
		m_iPrevY = point.y;
	}
	
	CDialog::OnMouseMove(nFlags, point);
}


void CTag3Dlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
	m_iPrevX = point.x;
	m_iPrevY = point.y;

	CDialog::OnLButtonDown(nFlags, point);
}
Also das is mal der Code wo ich die befehle für die buttons reinschreibe...

Code:
// Tag3Dlg.h : header file
//

#if !defined(AFX_TAG3DLG_H__54A791DC_D6C7_4106_8929_E8EBF57F4618__INCLUDED_)
#define AFX_TAG3DLG_H__54A791DC_D6C7_4106_8929_E8EBF57F4618__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CTag3Dlg dialog

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

// Dialog Data
	//{{AFX_DATA(CTag3Dlg)
	enum { IDD = IDD_TAG3_DIALOG };
		// NOTE: the ClassWizard will add data members here
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CTag3Dlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CTag3Dlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
private:
	int m_iPrevX();
	int m_iPrevY();
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_TAG3DLG_H__54A791DC_D6C7_4106_8929_E8EBF57F4618__INCLUDED_)

Das hier ist die "klassendefinition"
dort finde ich ich auch schon das int m_iPrevX(); usw.. aber ich krieg beim compilieren trotzdem fehler wenn ich diese variablen im code verwende...
 
Hm... tut mir leid..
Noch nie gesehen.. was für ein Projekt hasst du erstellt?

Ich arbeite fast nur mit API.
 
ich arbeite mit dem MFC App Wizard, der erstellt mir halt am anfang so nen schönen dialog, oder gleich die rohdaten für ein windows programm, is für die nicht api beherscher *g ^^

und wegen dem fehler, das kommt immer beim compilieren:

rror C2664: 'class CPoint __thiscall CDC::MoveTo(int,int)' : cannot convert parameter 1 from 'int (void)' to 'int'
Conversion is a valid standard conversion, which can be performed implicitly or by use of static_cast, C-style cast or function-style cast

kann aber leider nix damit anfangen :-/
 
Zurück