PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tab-and-Hold



J@Master
28.01.2003, 19:03:19
Hat jemand hier ne Ahnung, wie ich bei einer MFC Anwendung Tab-and-hold deaktiviere? (Dieser gepunktete Kreis, der beim längeren halten des Stiftes erscheint). Für nicht MFC Anwendungen steht darüber was in der Hilfe. Das Funktioniert jedoch nicht bei MFC. Dort wird nämlich diese Funktion vor dem MouseDown Ereignis aufgerufen...

wrench
03.02.2003, 17:33:44
Aus der englischen Newsgroup "microsoft.public.pocketpc.developer":

"Red circles are shown in SHRecognizeGesture() invoked in
WM_LBUTTONDOWN handler. So the one of the ways to avoid
this behavior is to write own button down handler."

Auch in der MFC muß es einen Auslöser für die Punkte geben.
Evtl. mal in der MFC Source nach SHRecognizeGesture() suchen und die entsprechende Funktion überlagern.

J@Master
25.02.2003, 17:59:01
hmmm... Hatte jetzt mal wieder Zeit mich dran zu machen... Aber irgendwie habe ich keinen Erfolg. Ich denke nicht, dass irgendwo der MFC Code zu finden ist (?). In meinem Code taucht dieses SHRecognizeGesture jedoch nicht auf. Habe schon versucht, die WM_LBUTTONDOWN auf eine andere Funktion umzuleiten. Auch erfolglos.
Geh mal von einem Menschen aus, der nur MFC benutzt, weil er zu doof war, sich Anfangs darüber gedanken zu machen, was das wirklich bedeutet. Ich habe kaum Ahnung von den tiefergehenden MFC Funktionen.
Wenn du mit "überlagern", das Schreiben einer Funktion mit dem gleichen namen jedoch mit anderem Inhalt meinst, kann ich mir denken, was gemeint ist jedoch habe ich keine Ahnung wohin diese Funktion soll. Sie muss ja auf gleicher Ebene wie die MFC Libary liegen...

Nemesis
25.02.2003, 18:40:17
Einfach die WM_LBUTTONDOWN-Nachricht überschreiben und schon ist der Kreis weg

wrench
25.02.2003, 18:56:44
Wenn Du das Pocket PC SDK installiert hast (wovon ich ausgehe, sonst könntest Du nix übersetzen), dann findest Du unter
C:\Windows CE Tools\wce300\MS Pocket PC\mfc\src
die MFC Sourcen.
Evtl. hast Du das SDK wondershin installiert, dann mußt Du suchen.

In den MFC Sourcen findest Du im Modul wincore.cpp die Implementierung der MFC Basisklasse CWnd.

Es gibt dort eine Funktion

void CWnd::OnLButtonDown (UINT nState, CPoint point)
{
if (!SHRecognizeGesture(point))
Default();
}


die Du in Deinem Projekt überlagern kannst, z.B.:

class MeineFensterklasse : public CWnd
{
blabla usw.
};

void MeineFensterklasse::OnLButtonDown (UINT nState, CPoint point)
{
// hier nicht den RecognizeGesture-Kram aufrufen
Default();
}


und schon sollten die Pünktchen weg sein.

Viel Erfolg!

J@Master
25.02.2003, 19:05:25
Hey! Es klappt! Danke!!! :banana: