Fehler: Im Dialogfeld MFC nicht BN_DOUBLECLICKED Meldungshandler Treffer

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 247323 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Unter Windows CE Verwendung der MFC-Klassen beim Hinzufügen von einen BN_DOUBLECLICKED Meldungshandler für eine Schaltfläche in einem Dialogfeld oder ein Fenster, den Ereignishandler nicht aufgerufen wird, wenn auf die Schaltfläche doppelgeklickt wird. Der Ereignishandler wird für Microsoft Windows 95, Microsoft Windows 98, Microsoft Windows NT 4.0 und Microsoft Windows 2000 aufgerufen.

Ursache

Dieses Problem wird durch einen Bug in der Windows CE-Betriebssystem.

Lösung

Eine mögliche Lösung besteht darin, einen Handler BN_CLICKED für die Schaltfläche hinzuzufügen. Innerhalb des Ereignishandlers, verwenden Sie folgenden Code um zu testen, ob die Schaltfläche in den letzten paar Millisekunden geklickt wurde:
  static BOOL s_bLastClicked = TRUE;
  static DWORD s_dwTickCount = 0;
  if (s_bLastClicked)
  {
    DWORD dwTickCount = GetTickCount();
    if ((dwTickCount - s_dwTickCount) < 500) //Last click less than 500ms?
    {
      s_bLastClicked = FALSE; //Was double-clicked, don't test next time...

      //Assume a double click...
      //Do your double-click code here...
    }
    s_dwTickCount = dwTickCount;
  }
  else
     s_bLastClicked = TRUE;
				
manuell den Fensterstil-Klasse hinzugefügt CS_DBLCLKS und BS_NOTIFY hinzufügen Stil für die Schaltfläche Ihnen nicht weiterhilft. Dieser manuelle Prozess ermöglicht jedoch die Nachricht gesendet werden, wenn auf anderen Plattformen außer Windows CE ausgeführt.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel Microsoft-Produkten handelt.

Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

  1. Erstellen Sie eine neue dialogfeldbasierte Anwendung mithilfe der WCE MFC-Anwendungs-Assistenten . Akzeptieren Sie alle Standardwerte und klicken Sie auf Fertig stellen .
  2. Fügen Sie in der OnInitDialog -Methode, den folgenden Code vor der return-Anweisung:
    SetClassLong(m_hWnd, GCL_STYLE, GetClassLong(m_hWnd, GCL_STYLE) | CS_DBLCLKS);
  3. Das Dialogfeld die Schaltfläche hinzufügen. Klicken Sie mit der rechten Maustaste auf die Schaltfläche und klicken Sie auf Eigenschaften . Klicken Sie auf die Registerkarte Formatvorlagen , und aktivieren Sie das Kontrollkästchen Benachrichtigen .
  4. Verwenden Sie Klassen-Assistenten , indem Sie im Menü Ansicht und den Menü-Artikel Klassen-Assistent auswählen. Klicken Sie unter dem Abschnitt Objekt-IDs auf IDC_BUTTON1 . Klicken Sie unter dem Abschnitt Nachrichten auf die BN_DOUBLECLICKED -Nachricht. Klicken Sie auf Funktion hinzufügen , und klicken Sie dann auf Code bearbeiten .
  5. Setzen Sie einen Haltepunkt in der BN_DOUBLECLICKED -Meldungshandler für die Schaltfläche.
  6. Erstellen der Anwendung und führen Sie wann erledigt erstellen.
Stellen Sie fest, der nicht Wenn im Emulator ausgeführt oder auf dem Gerät ausgeführt Haltepunkt erhalten. Wenn Sie die oben beschriebenen Schritte in einer Win32-Anwendung nicht auf Windows CE ausgeführt durchführen, funktioniert der Handler wie erwartet.

Eigenschaften

Artikel-ID: 247323 - Geändert am: Sonntag, 23. Februar 2014 - Version: 2.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows CE Toolkit für Visual C++ 6.0, wenn verwendet mit:
    • Microsoft Foundation Class Library 4.2
Keywords: 
kbnosurvey kbarchive kbmt kbbug kbbutton KB247323 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 247323
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com