Focus mit Tab wechseln



  • Hi zusammen,

    entweder bin ich zu dumm, oder ich sehe den Wald vor lauter Bäumen nicht.

    Ich progge eine MFC Anwendung (Multiple documents) mit mehreren Edit-Feldern in einem Fenster. Jetzt möchte ich den Focus mit der Tab Taste ändern und das geht nicht. Wie mache ich das ?

    Benutze VC 6++.

    THX
    BlWolf



  • Hast du einen Formview? Dann sollte das automatisch gehen.



  • Also bei VC6++ kannst du unter Layout Tab Order die Tabulator reihenfolge selebr festlegen, falls du noch Probleme damit hast frag einfach nochmal



  • Es geht ganz einfach:

    • Wenn du mit dem Dialogfelddesigner arbeitest, musst du nur bei allen Eingabefeldern (w) im Kontextmenü "Eigenschaften" aufrufen und dann in der ersten oder zweiten Registerkarte die Eigenschaft "Tabstop" aktiveren (zumindest bei " MSVC++ 6.0")
    • Wenn du CreateWindow*(Ex)* aufrufst übergebe den Style-Parameter mit "WM_TABSTOP" (musst in deiner Hilfe nachschauen, bin mir mit dem Namen nicht sicher)
    • Am Ende muss / sollte man die Tabulator-Reihenfolge richtig einstellen
    • => Fertig!

    Mit freundlichen Grüßen
    Rhombicosidodecahedron



  • Also das Fenster wird folgender erstellt:

    MainFrm.cpp

    Kunden_Verwalten_open = new Kunden_Verwalten;
    Kunden_Verwalten_open->Create(NULL,_T("Kundenverwaltung"),WS_CHILD|WS_VISIBLE|WS_OVERLAPPEDWINDOW|WS_TABSTOP,
    CRect(0,0,450,370),this,NULL);	
    Kunden_Verwalten_open->SetWindowPos(&wndTop,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
    

    Kunden_Verwalten.cpp

    BOOL Kunden_Verwalten::PreCreateWindow(CREATESTRUCT& cs) 
    {
    m_nID = (int)cs.hMenu;
    cs.style |= WS_CAPTION;
    cs.dwExStyle |= WS_EX_CLIENTEDGE;
    cs.style |= WS_CLIPSIBLINGS;
    cs.lpszClass =
    AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS,
    NULL,
    HBRUSH(COLOR_BACKGROUND),
    NULL);
    return CMDIChildWnd::PreCreateWindow(cs);
    }
    

Anmelden zum Antworten