the incredible Leitman
Erfahrenes Mitglied
Hallo Leute... ich habe vor, mich mit dem Abfangen von Windows Messages zu beschäftigen (benötige das um bestimmte Tasten zu sperren und eine TabPage immer offen zu halten)
Habe bereits stundenlang gegoogelt und überall im Web alles mögliche darüber gelesen...
Nun bin ich auf folgendes Problem gestoßen:
Es gibst sowohl die Funktion WinProc, als aud WndProc?
Was ist da der Unterschied? Nach meiner Recherche bin ich ziemlich verwirrt, habe für beide dieser Methoden ungefähr dieselbe Implementierung gefunden... in der MSDN ist jedoch nur zu WndProc etwas zu finden
(http://msdn2.microsoft.com/en-us/library/system.windows.forms.control.wndproc.aspx)
Hoffe, dass mich da nun jemand WIRKLICH aufklären kann
Was ich bist jetzt probiert habe:
In den Datein
CommCtrl.h
und WinUser.h
(aus dem SV SDK) findet man die Deklarationen der einzelnen Message Keys
Ich habe eine Standart WindowsForm erstellt (in MS VS2005) und folgende Funktion implementiert:
Kann ich problemlos kompilieren, jedoch beim ausführen erscheint immer die Fehlermeldung: "Win32Exception: Error creating window handle"
Was mache ich falsch? Muss ich noch extra etwas includen / einbinden?
Wenn ich "windows.h" include, erhalte ich beim kompilieren bereits 2 Fehler in der Zeile in der WM_KEYDOWN deklariert wird:
"error C2143: syntax error : missing ';' before 'constant' "
"error C2106: '=' : left operand must be l-value"
In dem Fall, dass ich die Deklaration weglasse, kann ich zwar vollständig kompiliere, jedoch erscheint beim Ausführen wieder der Fehler "Error creating window handle"
Oder muss ich überhaupt etwas anderes verwenden?
etwa in der Art:
Hoffe, jemand von euch kann mich erleuchten,
Vielen Dank für eure Zeit
mfG
der Leitman
Habe bereits stundenlang gegoogelt und überall im Web alles mögliche darüber gelesen...
Nun bin ich auf folgendes Problem gestoßen:
Es gibst sowohl die Funktion WinProc, als aud WndProc?
Was ist da der Unterschied? Nach meiner Recherche bin ich ziemlich verwirrt, habe für beide dieser Methoden ungefähr dieselbe Implementierung gefunden... in der MSDN ist jedoch nur zu WndProc etwas zu finden
(http://msdn2.microsoft.com/en-us/library/system.windows.forms.control.wndproc.aspx)
Hoffe, dass mich da nun jemand WIRKLICH aufklären kann
Was ich bist jetzt probiert habe:
In den Datein
CommCtrl.h
und WinUser.h
(aus dem SV SDK) findet man die Deklarationen der einzelnen Message Keys
Ich habe eine Standart WindowsForm erstellt (in MS VS2005) und folgende Funktion implementiert:
C++:
protected:
virtual void WndProc ( Message %m ) override
{
const System::Int32 WM_KEYDOWN = 0x0100;
switch ( m.Msg )
{
case WM_KEYDOWN:
MessageBox::Show(" left Mouse pressed! ");
break;
default:
break;
}
}
Was mache ich falsch? Muss ich noch extra etwas includen / einbinden?
Wenn ich "windows.h" include, erhalte ich beim kompilieren bereits 2 Fehler in der Zeile in der WM_KEYDOWN deklariert wird:
"error C2143: syntax error : missing ';' before 'constant' "
"error C2106: '=' : left operand must be l-value"
In dem Fall, dass ich die Deklaration weglasse, kann ich zwar vollständig kompiliere, jedoch erscheint beim Ausführen wieder der Fehler "Error creating window handle"
Oder muss ich überhaupt etwas anderes verwenden?
etwa in der Art:
C++:
LRESULT CALLBACK Window::wndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg) {
case WM_SYSCOMMAND:
switch (wParam) {
case SC_SCREENSAVE:
case SC_MONITORPOWER:
return 0;
}
break;
case WM_KEYDOWN:
// Fenster schließen
if (wParam==VK_ESCAPE) _exit = true; // Ausnahme !
break;
case WM_CLOSE:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
Hoffe, jemand von euch kann mich erleuchten,
Vielen Dank für eure Zeit
mfG
der Leitman