Programmierung mit der Maus

Hallo erstmal,

Ich hätte mal Interessa daran die Maus mit in ein Programm zu integrieren.
Also vielleicht sowas wie wenn die Maus bestimmte Koordinaten auf dem Bildschirm durchkräuzt dann soll ein Bild angezeigt werden oder eine Audio Datei abgespielt werden.

Wie würde man sowas machen?
Ich hab davon kein blassen Schimmer.
Welche Bibliothek ich da includen muss :wink:
Und was für Kommandos es dafür gibt.

MfG
Marlo

Hallo!

Auf welcher Plattform programmierst du denn Win32-API,MFC…?

Win32-API: Dort musst du nur die Nachrichten WM_LBUTTONDOWN,WM_RBUTTONDOWN… empfangen und auswerten (Guck mal auf: http://willemer.de/informatik/windows/winframe.htm )

MFC: (guck mal in der MSDN-Hilfe nach unter WM_LBUTTONDOWN)

Mfg Sebastian

Auf welcher Plattform programmierst du denn Win32-API,MFC…?

Win32-API: Dort musst du nur die Nachrichten

WM_LBUTTONDOWN,WM_RBUTTONDOWN… empfangen und auswerten (Guck
mal auf: http://willemer.de/informatik/windows/winframe.htm
)

MFC: (guck mal in der MSDN-Hilfe nach unter

WM_LBUTTONDOWN)

Hello again

gute Frage!
Woher weiß ich eigentich auf welche Plattform ich programmiere?
Also ich habe Windows XP und programmiere mit dem Dev c++ compiler.

Vielleicht hilft dir das weiter?
und was genau muss ich machen könntest du das vielleicht ein bisschen deutlicher erklären weil das hab ich noch nicht so ganz verstehen können

Mit freundlichen Grüßen
Marlo

Hallo Marlo,
ich vermute du programmierst in der console? Ist das richtig?

Ich bin mir nicht sicher wie weit der Bloodshed compiler mfc unterstützt? Der Einfachste weg Windwosanwendungen zu schreiben ist sicherlich C# (kostenlose version auf www.microsoft.com - nennt sich visual studio 2005 C# express edition oder so). C# ist auch super schnell zu lernen (siehe galileo open books oder google).

Falls du nicht C# programmieren möchtest empfehle ich dir trotzdem den microsoft compiler (Visual Studio 2005 Express version C++) der unterstützt mit sicherheit mfc und win32 api programmierung am besten, denn um das kommst du bei mausereignissen nicht drum.


de.wikipedia.org/wiki/Win32API

helfen dir sicherlich weiter.

gruß Steffen

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Marlo,

Also ich habe Windows XP und programmiere mit dem Dev c++
compiler.

MFC ist eine Library mit fertigen Klassen. Bei Dev-C++ gibt es jedoch keine MFC, diese wird nur bei MS-Compilern mitgeliefert. Es gibt aber auch andere kostenlose Libraries, z.B. JUCE:
http://www.rawmaterialsoftware.com/juce/
die geht auch für Dev-C++. Libs zu verwenden heisst aber mal immer, du musst in C++ echt durchsteigen.

Bei Dev-C++ kannst Du ein WIN-API-Projekt (bei Projekt neu) selektieren, Dev hat auch verschiedene Beispiele für WIN-Proggies dabei. Hier genuegt es zur Not, C zu koennen.

Jetzt brauchst du:
Maus
Bild-Datei oeffnen und ausgeben
Audio Datei abspielen

Was Dir fehlt, ist also der API-Einsteiger-Kurs. Wenn Du Dich für API entscheidest, dann gibt es dieses eine Buch:
http://www.amazon.de/Windows-Programmierung-Das-Entw…
wenn Du es gebraucht findest, nimm nur die 5.Auflage (= die neueste), die aelteren haben über Audio rein gar nichts drin.

lg
Martin

Hallo!

Ich kann die Empfehlung auch nur bestätigen! Ist zwar ziemlich dick, aber es wird auch eine Menge erklärt!!!
Wenn du noch ein Einsteiger in C++ bist, empfehle ich dir:
http://www.amazon.de/DirectX-Visual-komplette-Starte…
Da wird zwar auch DirectX erklärt, aber es gibt einen qualitativ hochwertigen Einstieg in die C+±Programmierung bis zur Win-32-API.

Mfg Sebastian

PS: Probier mal folgendes API-Skript aus:frowning:Du brauchs möglicherweise noch zusätzliche Bibliotheken?!?)

#include

// Anwendungsfenster erzeugen
HWND CreateMainWindow(HINSTANCE hInstance);

// Callback Funktion
LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

HWND hWnd = 0;

//main-Funktion
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{

hWnd = CreateMainWindow(hInstance);

if(0 == hWnd)
{
MessageBox(0,„Fenster konnte nicht erzeugt werden“,„Fehler“,MB_OK);
return 0;
}

MSG msg;

while(GetMessage(&msg,NULL,0,0))
{
// Nachricht an die Callbackfunktion senden
TranslateMessage(&msg);
DispatchMessage(&msg);
}

// Rückgabewert an Windows
return 0;
}

// Fenster erzeugen
HWND CreateMainWindow(HINSTANCE hInstance)
{
WNDCLASSEX wndClass =
{
sizeof(WNDCLASSEX),
CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW,
MessageHandler,
0,
0,
hInstance,
LoadIcon(NULL, IDI_WINLOGO),
LoadCursor(NULL, IDC_ARROW),
(HBRUSH)GetStockObject(WHITE_BRUSH),
NULL,
„WindowClass“,
LoadIcon(NULL, IDI_WINLOGO)
};

RegisterClassEx(&wndClass);

return CreateWindowEx(NULL, //
„WindowClass“, // Klassenname
„Hello Windows“, // Fenstertitel
WS_OVERLAPPEDWINDOW | // Fensterstil
WS_VISIBLE, // Sichtbar?
100, 100, 400, 300, //Größen Anfangspos.
NULL,
NULL,
hInstance,
NULL);
}

//CALLBACKFUNKTION
LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
// Nachrichtenbehandlung:
switch(msg)
{

case WM_LBUTTONDOWN://linke Maustaste wurde gedrueckt
break;
case WM_PAINT //Fenster zeichnen:
break;
case WM_DESTROY://Fenster schliessen
PostQuitMessage(0);
return 0;
break;
}

return DefWindowProc(hwnd, msg, wParam, lParam);
}

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Sry dein Programm funktioniert irgendwei nicht.
Die Headerdatei hab ich.

Könntest du das vllt nochmal aufschreiben?
Ohne Fehler und was macht das Programm?

THX Marlo

Hallo Steffan,

ich vermute du programmierst in der console? Ist das richtig?

Ja das ist richtig.

Ich bin mir nicht sicher wie weit der Bloodshed compiler mfc
unterstützt?

Was war mfc noch gleich?

Der Einfachste weg Windwosanwendungen zu
schreiben ist sicherlich C# (kostenlose version auf
www.microsoft.com - nennt sich visual studio 2005 C# express
edition oder so). C# ist auch super schnell zu lernen

Geht das auf keinen Fall in einer einfachen Consolen Programmierung?
Weil ich hatte mir das Programm schon einmal runtergeladen und das war so viel. Ich wusste gar nicht wie man da irgendwas machen kann.
Kann man nicht auch irgendwie per Consolen Programmierung ein windows fenster öffnen, wo man dann irgendwelche menüs reinmachen kann.

Ich hab mal gehört, dass man dafür die windows.h Datei braucht. Die hab ich auch. Und da kann man doch bestimmt irgendwas mit machen oder?

Ich auch auch in meinem C++ Buch mal was von GUI oder so ähnlich gehört.

Was genau ist das?

Gruß Marlo

Hallo Steffan,

ich vermute du programmierst in der console? Ist das richtig?

Ja das ist richtig.

Ich bin mir nicht sicher wie weit der Bloodshed compiler mfc
unterstützt?

Was war mfc noch gleich?

Der Einfachste weg Windwosanwendungen zu
schreiben ist sicherlich C# (kostenlose version auf
www.microsoft.com - nennt sich visual studio 2005 C# express
edition oder so). C# ist auch super schnell zu lernen

Geht das auf keinen Fall in einer einfachen Consolen
Programmierung?
Weil ich hatte mir das Programm schon einmal runtergeladen und
das war so viel. Ich wusste gar nicht wie man da irgendwas
machen kann.

Dafür gibt es Ja gute InternetSeiten, allerdings rcihtig das sind Tools die erstmal verstanden werden müssen. Graphische Benutzeroberfläche :wink: Aber genau das willst Du ja auch programmieren, ein Menu nicht mit Zahlen sondern mit Graphik etc.
Und genau diese Programme erleichtern Dir erstmal den Einstieg ,um mal eben ein Menu (standart) etc zu erstellen , mit schliessen Button, öffen , etc, eben alles was so normal ist.

Kann man nicht auch irgendwie per Consolen Programmierung ein
windows fenster öffnen, wo man dann irgendwelche menüs
reinmachen kann.

Solange dein Compiler das Compiled eigentlich ja. Starten ist dann noch ne andere Sache.
Aber um mal eben eine Nachricht von Menu etc zu bekommen und zu senden und zu reagieren, da vergehen schon einige graue Haare.

Ich hab mal gehört, dass man dafür die windows.h Datei
braucht. Die hab ich auch. Und da kann man doch bestimmt
irgendwas mit machen oder?

kann man, sicher , nur was !!!

Ich auch auch in meinem C++ Buch mal was von GUI oder so
ähnlich gehört.

Graphic User Interface Graphische Benutzer Schnittstelle

Graphical User Interface, siehe Grafische Benutzeroberfläche

Genau das willst du Bauen.

Was genau ist das?

Das was bei den Tools zur Programmierung einer MFC automatisch mal eben (wenn man weiss wir man macht) per klick erstellt.

Gruß Marlo

Thema Windows MicrosoftFounderClass , Windows Programmieren
http://www.cpp-tutor.de/mfc/toc.htm

Für alles andere sollte man schon die MFC lernen.
gibt aber auch eine vom Borland die visuelle Komponentenbibliothek (VCL).

Zu Fuss würde ich das nicht alles erledigen wollen. Nimm also keinen RegialZug sondern InterCityExpress oder gleich eine MagnetSchwebebahn.

Klar Probleme gibt es Überall mit , aber per Konsole wird ein größeres werden.

Zu Fuss würde ich das nicht alles erledigen wollen. Nimm also
keinen RegialZug sondern InterCityExpress oder gleich eine
MagnetSchwebebahn.

Klar Probleme gibt es Überall mit , aber per Konsole wird ein
größeres werden.

Hallo RakonDark,

genau das ist es was mich beschäftigt. Ich bin eigentlich mehr Fan von selbstprogrammierung. Dies scheint aber nur bis zu einem Gewissen gerad zu gehen. Das heißt sobald ich irgendwas mit mfc machen will oder mit GUI, dann muss ich nicht mehr mit einem compiler sondern mit einem programm (Visual C++ Studio oder so) arbeiten?

Sind mfc und GUI eine eigene Programmiersprache?

Wie fang ich damit am Besten an?
Brauch ich da Vorkenntnisse?
Ich hab jetzt das Buch C++ von Markt + Technik durch
da sind so grundlagen mit klassen und objekten und so erklärt, reicht das als Grundlage?
Oder soll ich noch ein Aufbaubuch kaufen?

Gruß Marlo

Hallo RakonDark,

genau das ist es was mich beschäftigt. Ich bin eigentlich mehr
Fan von selbstprogrammierung. Dies scheint aber nur bis zu
einem Gewissen gerad zu gehen. Das heißt sobald ich irgendwas
mit mfc machen will oder mit GUI, dann muss ich nicht mehr mit
einem compiler sondern mit einem programm (Visual C++ Studio
oder so) arbeiten?

So siehts aus. Man programmiert das was es schon gibt nur selten neu. Das ist informatik :wink: Das Visual Studio hat sehr sehr viele Vorteile du musst dich da halt nur mal einarbeiten.

Sind mfc und GUI eine eigene Programmiersprache?

MFC ist ein Framework (siehe wikipedia!!!)
GUI ist die bezeichnung für eine Grafische Benutzer Oberfläche(siehe wikipedia!!!)

Wie fang ich damit am Besten an?

Lesen, Lesen, Lesen, Programmieren,Programmieren,Programmieren :smile:
Try and Error!

Brauch ich da Vorkenntnisse?

Jup Cpp siehe MFC

Ich hab jetzt das Buch C++ von Markt + Technik durch
da sind so grundlagen mit klassen und objekten und so erklärt,
reicht das als Grundlage?

Jup

Oder soll ich noch ein Aufbaubuch kaufen?

Jup eins was sich mit MFC beschäftigt

Aber ich würde Dir trotzdem empfehlen C# zu nutzen, denn MFC wird über kurz oder lang aussterben.

Hallo!

1.Wie ich dir schon gesagt habe, brauchst du bestimmte Bibliotheken!!!
Ich denke diese reichen: kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
(Wahrscheinlich reicht auch schon: kernel32.lib user32.lib gdi32.lib winspool.lib - aber nimm lieber alle!!)

2.Dieses Skript zeigt nur ein Windowsfenster an - wenn du Mausnachrichten bearbeiten willst, musst du zwischen WM_LBUTTONDOWN und der nächsten break-Anweisung etwas schreiben.

Mfg Sebastian
break

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]