Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Tabstop bei Edit-Steuerelementen im Client-Fenster

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
02.05.2005, 16:09 Uhr
peter82



Hallo zusammen,

ich hätte eine Frage bzgl. Steuerelementen im Client-Fenster:

Ich möchte, daß ich mit TAB zwischen den Steuerelementen hin- und herschalten kann.
Deshalb habe ich beim Erzeugen schon WS_TABSTOP eingefügt. Trotzdem kann ich immer noch nicht zwischen den Elementen hin- und herschalten. Ich weiß leider nicht, woran es liegen könnte. Da die View-Klasse von CView und nicht von CFormView abgeleitet ist, kann ich den Ressourcen-Editor nicht verwenden. Kann mir jemand helfen?
Ich wäre für Hilfe wirklich sehr dankbar!

Grüße,
Peter
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.05.2005, 16:27 Uhr
Th



Jedes einzelne Element muß das Flag WS_TABSTOP besitzen, nicht die Fensterklasse...
Die TabStop-Reihenfolge wird durch die Erstellreihenfolge bestimmt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.05.2005, 17:17 Uhr
~peter82
Gast


Ich hatte die einzelnen Elemente mit dem Flag WS_TABSTOP versehen, nicht die Fensterklasse. Trotzdem funktionierts nicht. Wenn ich z. B. in ein Edit-Feld klicke und TAB drücke, kommt nur der Fehler-Sound (der gleiche Ton, wenn ich z. B. in ein Edit-Feld, für das ES_NUMBER gesetzt ist, einen Buchstaben eingeben will) und sonst nichts.
Hier sind mal ein Beispiel, wie ich die Steuerelemente erzeuge:

m_edNachname.Create(WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, CRect(150, 45, 400, 65), this, ID_B230);

Die anderen Steuerelemente sind ähnlich, auf jeden Fall auch mit WS_TABSTOP versehen. Trotzdem funktionierts nicht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.05.2005, 21:48 Uhr
~peter82
Gast


Ich habs mittlerweile selbst herausgefunden, warum es nicht funktioniert hat. Das Flag WS_TABSTOP funktioniert nur bei Dialogklassen, in anderen Klassen muß man die Methode PreTranslateMessage überschreiben, dann funktionierts einwandfrei.

Für alle, die mal das gleiche Problem haben sollten:
Die Steuerelemente, die man mit der TAB-Taste erreichen will, mit dem Flag WS_TABSTOP versehen (TabStop-Reihenfolge wird duch Erstellreihenfolge bestimmt). Dann PreTranslateMessage() überschreiben und folgenden Code in die Methode einfügen:


C++:
BOOL Ctest2View::PreTranslateMessage(MSG* pMsg)
{

            if(IsDialogMessage(pMsg))
        return 1;
    else
        return CView::PreTranslateMessage(pMsg);
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: