Frage

ich auf einem Legacy-Projekt in VC++/Win32/MFC arbeite. Vor kurzem wurde es erforderlich, dass die Anwendung der Arbeit an einem Tablet PC , und dies in einer Vielzahl neuer Fragen eingeleitet. Ich in der Lage gewesen, mit zu arbeiten, und um diese Probleme, aber bin links mit einer wobei ich einige Experten Vorschläge nutzen könnte.

Ich habe einen bestimmten Fehler, der von dem „Lift“ des Stiftes aus der aktiven Oberfläche induziert wird. Grundsätzlich ist der Mauszeiger verschwindet und erscheint dann, wenn Sie „Presse“ es zurück auf den Bildschirm.

Es macht Sinn, dass dies in der Anwendung unerklärt ist. Sie können nicht Lift der Cursor auf einem Desktop-PC. Also, was ich suche ist eine gute Übersicht darüber, was passiert (in Form von Windows-Nachrichten, etc.), wenn der Aufzug auftritt. Hat übersetzen diese Änderungen konzentrieren sich nur auf und Mouseover-Ereignisse? Mein Fehler scheint auch Cursor Änderungen beinhalten (nicht Aufzug in Zusammenhang stehen können, obwohl). Gewiß ist der unerwartete „Lift“ bricht den Zustand der Werkzeugbearbeitung der Anwendung.

So sind die greifbaren Fragen sind:

  1. Was passiert, wenn ein Stift „Lift“ auftritt? Eine Presse?
  2. Welche API-Aufrufe können verwendet werden, um dies zu erkennen? Ist es übersetzen nur in Standardmeldungen mit Fahnen / Werte eingestellt?
  3. Was ist ein guter Weg zu testen / emulieren dies bei Ihrer Entwicklung PC ein Desktop ist? Fliege ich hier nur blind? (Ich habe nur periodischen Zugang zu einem Tablet-PC)
  4. Was die richtige Verhalten oder beste Praxis für Tablet-Stift Bewusstsein darstellt?

Vielen Dank für Ihre Aufmerksamkeit, ee

War es hilfreich?

Lösung

Als Tablet-Nutzer Ich habe einige Ihrer Fragen beantworten können.

Erstens:

  

Sie können nicht sehr leicht halten einen „Tastaturfokus“ auf einem Fenster, wenn der Stift aus dem fokussierten Fenster zum Trail hat eine Taste auf der virtuellen Tastatur zu drücken.

Die meisten der virtuellen Tastaturen, die ich verwendet habe (das Windows-Tablet-Eingabefeld und ein unter ubuntu) erlauben das Programm sie eingeben halten „Tastaturfokus.“

  

Was passiert, wenn ein Stift „Lift“ auftritt? Eine Presse?

Unter Windows der Druckwert fällt, aber außerhalb davon gibt es kein Ereignis. (Ich weiß nicht, über Linux.)

  

Welche API-Aufrufe können verwendet werden, um dies zu erkennen? Ist es übersetzen nur in Standardmeldungen mit Fahnen / Werte eingestellt?

Wie bereits erwähnt, wenn Sie den Druckwert erhalten können, können Sie diese verwenden.

  

Was ist ein guter Weg zu testen / emulieren dies bei Ihrer Entwicklung PC ein Desktop ist? Fliege ich hier nur blind? (Ich habe nur periodischen Zugang zu einem Tablet-PC)

Wenn der Stift an anderer Stelle platziert unten, die globalen Koordinaten des Zeigers ändern, so können Sie den plötzlichen Zeiger bewegen sich mit etwas emulieren, dass Sie die globalen Zeigerwerte ändern. (Die Robot-Klasse in Java macht es ziemlich einfach.)

  

Was bedeutet die richtige Verhalten oder beste Praxis für Tablet-Stift Bewusstsein?

Ich würde empfehlen, lesen Sie, was Microsoft zu sagen hat, hat die MSDN-Website eine Reihe von ausgezeichneten Artikeln. ( http://msdn.microsoft.com/en- us / library / ms704849 (VS.85) aspx ) weisen darauf hin, ich werde, dass die Größe der Tasten auf Ihre Anwendungen, die einen großen Unterschied macht.

Hope war von Hilfe.

Andere Tipps

Wie ich es verstehe, gibt es keine „Lift“ Ereignis - das einzige Ereignis passiert, wenn der Stift später zurück auf den Bildschirm gebracht wird. Natürlich ist dies auf Ihre speziellen Treiber abhängig und so weiter.

Schlimmer noch, Sie die Fehler beschreiben könnten mit nur einer typischen Maus reproduzierbar sein. Versuchen Sie die Maus zu bewegen, so schnell wie möglich - es wird mit ziemlicher Sicherheit springt auf einmal mehrere Pixel. Oder sogar Dutzende oder Hunderte, wenn Sie die Mauseinstellungen haben für die höchste Zeigergeschwindigkeit konfigurieren. Ein Update kann die Maus auf 100.100 sein. Schon am nächsten Update, es 200.300 sein könnte.

  

Unter Windows der Druckwert fällt, aber außerhalb davon gibt es kein Ereignis. (Ich weiß nicht, über Linux.)

Unter Linux `ll get "ProximityEvents"

diese Ereignisse höchstwahrscheinlich WT_PROXIMITY in Fenster avaliable sind (siehe: http: / /www.wacomeng.com/devsupport/ibmpc/wacomwindevfaq.html )

@ Greg - Eine Klarstellung, dies ist ein Laptop-PC mit integriertem Tablett und Stift gebaut in das Gerät keine eigene Tastatur (es ist eine virtuelle auf dem Touchscreen) und ist kein wacom Eingabegerät.. Sorry für die Verwirrung.

Es scheint, dass es eine SDK für die Microsoft Windows XP Tablet PC Edition, die die Fähigkeit spezielle Details können wie Druck zu bekommen. Aber ich weiß, dass es eine gewisses Maß an Standard-Kompatibilität mit bestehenden nicht-Tablet-fähigen Anwendungen sein. Ich denke, ich kann versuchen, Spy zu bekommen ++ auf dem Tablet installiert und versuche, und filtere nach unten auf bestimmte Nachrichten / Ereignisse.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top