Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > C/C++, Visual C++, Visual C++.NET

C/C++, Visual C++, Visual C++.NET Fragen und Antworten zu C/C++, Visual C++ und Visual C++.NET

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50849, Antworten: 1390
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26615, Antworten: 4194
Gehe zum ersten neuen Beitrag Windows Oberfläche (Schrift,...
Aufrufe: 176, Antworten: 10
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 63, Antworten: 5
Gehe zum ersten neuen Beitrag TabCtrl
Aufrufe: 121, Antworten: 12
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 93, Antworten: 4
Gehe zum ersten neuen Beitrag Dateien lassen sich nicht...
Aufrufe: 17, Antworten: 2
Gehe zum ersten neuen Beitrag Suche Programm um Werbung zu...
Aufrufe: 49, Antworten: 2
Gehe zum ersten neuen Beitrag McAfee AVERT Stinger...
Aufrufe: 13, Antworten: 0
Gehe zum ersten neuen Beitrag Sticky Password 6.0.2...
Aufrufe: 25, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25.11.2005, 00:17   #1 (Direktlink)
newUser61
Gast
 
Beiträge: n/a
Standard Problem bei Eventhandler für Accelerator

Hallo Visual c++ Freunde,

ich bin neuling und möchte einen Eventhandler erstellen, der darauf reagiert, dass ich z.B. die Pfeiltasten drücke. Erstelle ich einen Accelerator und lasse ich im Accelerator-Assistenten einen Eventhandler erstellen, so passiert trotzdem nich wenn ich die Pfeiltasten betätige. Hat jemand sonst eine andere Idee wie man Methoden auf Tastendruck starten kann. (Soll eine Fernsteuerung für z.B. ein AUto werden) Die Fahr Methoden existieren bereits und funktionieren. Nur die Pfeiltasten fehlen.

Vielen Dank und Gruß

newUser61
  Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 25.11.2005, 11:06   #2 (Direktlink)
Dauergast
 
Registriert seit: 06.05.2004
Ort: Düsseldorf
Beiträge: 1.672
Standard

Na diese Cursortasten sind wie STRG,Schift, ENTER, ESC usw.
Tasten denen so direkt kein Tastaturkürzel zugewiesen kann,
mit WM_KEYDOWN /CWnd::OnKeyDown müsste es klappen.

Peter
lastwebpage ist offline   Mit Zitat antworten
Alt 25.11.2005, 17:14   #3 (Direktlink)
newUser61
Gast
 
Beiträge: n/a
Standard WMKeyDown unnötig

Also erstmal Danke für die Antwort. ABer wie man mit WMKeyDown umgeht habe ich nicht heraus bekommen. Bei den Acceleratoren in den Ressourcen kann man ja aber die Pfeiltasten als Aktion wählen und mit einer ID versehen. Auch ein Eventhandler wird erstellt, jedoch reagiert mein Userform nicht darauf egal ob ich die Pfeiltasten oder die F Tasten wähle. Hast du sonst ein Beispiel für WMKeyDown, das in einem Userform CDialog läuft.

Danke und Gruss
  Mit Zitat antworten
Alt 25.11.2005, 17:50   #4 (Direktlink)
Dauergast
 
Registriert seit: 06.05.2004
Ort: Düsseldorf
Beiträge: 1.672
Standard

Also entweder so:
Code:
in der H Datei
class CMyDlg : public CDialog
{
...
protected:
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
...
}
in der cpp Datei:
void CMyDlg ::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if (nChar == VK_DOWN)
 AfxMessageBox("It is a down arrow key!");
if (nChar == VK_RIGHT)
 AfxMessageBox("It is a right arrow key!");
if (nChar == VK_LEFT)
 AfxMessageBox("It is a left arrow key!");
if (nChar == VK_UP)
 AfxMessageBox("It is a up arrow key!");
CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
ODER
Code:
in der H Datei
class CMyDlg : public CDialog
{
...
virtual BOOL PreTranslateMessage(MSG *);
...
}
in der cpp Datei:
BOOL CMyDialog::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_KEYDOWN)
{
 if(pMsg->wParam == VK_DOWN)
 ...
}
return CDialog::PreTranslateMessage(pMsg);
}
Nimm am besten den Klassenassistenten damit die Funktionen ordnungsgemäß in die H Dateien eingefügt werden.
Der Nachteil von OnKeyDown ist das nicht alle Testen so abgefragt werden können.

Peter
lastwebpage ist offline   Mit Zitat antworten
Alt 26.11.2005, 17:08   #5 (Direktlink)
newUser 61
Gast
 
Beiträge: n/a
Standard Eventhandler

Noch einmal vielen Dank,

aber auch darauf reagiert das Userform nicht. Betätige ich die Pfeil Tasten wird nur vom OK Button zum CANCEL Button gewechselt.

Hast du noch eine Idee woran das liegen könnte?

Gruss NewUser61
  Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 26.11.2005, 21:18   #6 (Direktlink)
Dauergast
 
Registriert seit: 06.05.2004
Ort: Düsseldorf
Beiträge: 1.672
Standard

Wenn beide Funktionen auf die Taste ansprechen, davon gehe ich mal aus,
must du die erste Funktion mit return beenden, und bei der 2 Funktion ein TRUE zurückgeben. Die Stnadardbehandlungsfunktion sollte nicht aufgerufen werden.
Also CDialog::OnKeyDown und CDialog::PreTranslateMessage solltest du nicht aufrufen wenn die Nachricht von dir verarbeitet wurde.
Peter
lastwebpage ist offline   Mit Zitat antworten
Alt 28.11.2005, 18:02   #7 (Direktlink)
newUser61
Gast
 
Beiträge: n/a
Standard Danke für Eventhandler

Vielen Dank,

jetzt funktioniert es mit der 2. Variante. ABer eine der Methoden reicht ja aus.

Gruss NewUser61
  Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > C/C++, Visual C++, Visual C++.NET

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an




Alle Zeitangaben in WEZ +2. Es ist jetzt 05:25 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2