Fehler: Im Dialogfeld MFC nicht BN_DOUBLECLICKED Meldungshandler Treffer

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
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
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.
CE-spezifische doppelklicken WM_LBUTTONDBLCLK BN_CLICKED BN_DOUBLECLICKED WM_LBUTTONDOWN WM_LBUTTONUP

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 247323 – Letzte Überarbeitung: 02/23/2014 13:56:44 – Revision: 2.0

Microsoft Windows CE Toolkit für Visual C++ 6.0

  • kbnosurvey kbarchive kbmt kbbug kbbutton KB247323 KbMtde
Feedback