Ralf Kuhweide
10.10.2003, 18:43
Hallo ich brauche dringend HILFE habe gerade angefangen mit Visual C++.net. Ich sitzte vor meinem Buch ' Visual C++ in 21 Tagen' und habe auch bis zum vierten Tag alles verstanden. Aber nun habe ich echte Schwierigkeiten mit dem 5. Tag da soll man nämlich die Maustasten belegen und zwar so ,dass die rechte Maustaste einen roten und die linke Maustaste einen blauen Strich zieht, wenn ich nun das Programm nur für eine Taste schreibe; dann geht es auch, aber wenn ich es so schreibe, dass es beide Tasten belegt, kriege ich immer die Fehlermeldung 'MouseDlg.cpp(173): error C2065: 'lpen' : nichtdeklarierter Bezeichner'.
Ich hoffe ihr könnt mir da ein Stück weiter helfen.
Hier noch ein Auszug von dem Programmteil, der mir Sorgen macht:
void CMouseDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Fügen Sie hier Ihren Meldungsbehandlungscode ein, und/oder benutzen Sie den Standard.
// Linke oder rechte Maustaste gedrückt?
if (((nFlags & MK_LBUTTON) == MK_LBUTTON) ||
((nFlags & MK_RBUTTON) == MK_RBUTTON))
{
// Gerätekontext holen
CClientDC dc(this);
CPen *pPrevPen = NULL; // Zeiger auf den vorherigen Stift
{
if ((nFlags & MK_LBUTTON) == MK_LBUTTON)
// Neuen Stift erzeugen
CPen lpen(PS_SOLID, 16, RGB(255, 0, 0));
if ((nFlags & MK_RBUTTON) == MK_RBUTTON)
// Neuen Stift erzeugen
CPen lpen(PS_SOLID, 16, RGB(0, 0, 255));
}
// Den neuen Stift verwenden
pPrevPen = dc.SelectObject(&lpen);
// Linie vom letzten zum aktuellen Punkt zeichnen
dc.MoveTo(m_iPrevX, m_iPrevY);
dc.LineTo(point.x, point.y);
// Aktuellen Punkt als letzten Punkt speichern
m_iPrevX = point.x;
m_iPrevY = point.y;
// Vorherigen Stift wieder herstellen
dc.SelectObject(pPrevPen);
}
CDialog::OnMouseMove(nFlags, point);
}
Ich hoffe ihr könnt mir da ein Stück weiter helfen.
Hier noch ein Auszug von dem Programmteil, der mir Sorgen macht:
void CMouseDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Fügen Sie hier Ihren Meldungsbehandlungscode ein, und/oder benutzen Sie den Standard.
// Linke oder rechte Maustaste gedrückt?
if (((nFlags & MK_LBUTTON) == MK_LBUTTON) ||
((nFlags & MK_RBUTTON) == MK_RBUTTON))
{
// Gerätekontext holen
CClientDC dc(this);
CPen *pPrevPen = NULL; // Zeiger auf den vorherigen Stift
{
if ((nFlags & MK_LBUTTON) == MK_LBUTTON)
// Neuen Stift erzeugen
CPen lpen(PS_SOLID, 16, RGB(255, 0, 0));
if ((nFlags & MK_RBUTTON) == MK_RBUTTON)
// Neuen Stift erzeugen
CPen lpen(PS_SOLID, 16, RGB(0, 0, 255));
}
// Den neuen Stift verwenden
pPrevPen = dc.SelectObject(&lpen);
// Linie vom letzten zum aktuellen Punkt zeichnen
dc.MoveTo(m_iPrevX, m_iPrevY);
dc.LineTo(point.x, point.y);
// Aktuellen Punkt als letzten Punkt speichern
m_iPrevX = point.x;
m_iPrevY = point.y;
// Vorherigen Stift wieder herstellen
dc.SelectObject(pPrevPen);
}
CDialog::OnMouseMove(nFlags, point);
}