Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372

    [c++ api controlli e loro navigazione]

    Sapete spiegarmi perchè non riesco a spostarmi da un controllo ad un altro con il tasto tab??? I controlli sono figli di una
    MDI Child, perchè trattasi di applicazione Multiple Document Interface, e sono stati creati con l'api CreateWindowEx ed hanno
    il WS_TABSTOP ... ma non si naviga !!!!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: [c++ api controlli e loro navigazione]

    Originariamente inviato da stefanoB
    Sapete spiegarmi perchè non riesco a spostarmi da un controllo ad un altro con il tasto tab??? I controlli sono figli di una
    MDI Child, perchè trattasi di applicazione Multiple Document Interface, e sono stati creati con l'api CreateWindowEx ed hanno
    il WS_TABSTOP ... ma non si naviga !!!!
    La gestione della navigazione tra i controlli con il TAB (così come le altre particolarità nell'input) è una caratteristica che esiste tipicamente nelle dialog-box. Il tutto però è dovuto solamente a come viene gestito il loop dei messaggi (le funzioni per le dialog-box modali infatti hanno un "loro" loop dei messaggi particolare).

    Usa la funzione IsDialogMessage() nel loop dei messaggi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372

    Re: Re: [c++ api controlli e loro navigazione]

    Originariamente inviato da andbin
    Usa la funzione IsDialogMessage() nel loop dei messaggi.
    ma trattandosi di una applicazione MDI (Multiple Document Interface) il loop dei messaggi è:

    while(GetMessage(&Msg, NULL, 0, 0))
    {
    if (!TranslateMDISysAccel(g_hMDIClient, &Msg)) //controlla le chiavi accelleratori Ctrl+F4 Ctrl+F6
    {
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
    }
    }

    in questo modo navighi correttamente tra le finestre con IsDialogMessage() credo che questo si perda ... non ho provato!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: Re: Re: [c++ api controlli e loro navigazione]

    Originariamente inviato da stefanoB
    ma trattandosi di una applicazione MDI (Multiple Document Interface) il loop dei messaggi è:

    while(GetMessage(&Msg, NULL, 0, 0))
    {
    if (!TranslateMDISysAccel(g_hMDIClient, &Msg)) //controlla le chiavi accelleratori Ctrl+F4 Ctrl+F6
    {
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
    }
    }

    in questo modo navighi correttamente tra le finestre con IsDialogMessage() credo che questo si perda ... non ho provato!
    Perfetto .... allora fai:

    codice:
    if (!TranslateMDISysAccel(g_hMDIClient, &Msg) && !IsDialogMessage (g_hMDIClient, &Msg))
    O almeno ... prova. Le interfacce MDI non le ho mai usate ... salvo qualche prova sporadica in passato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372

    Re: Re: Re: Re: [c++ api controlli e loro navigazione]

    Originariamente inviato da andbin
    Perfetto .... allora fai:

    codice:
    if (!TranslateMDISysAccel(g_hMDIClient, &Msg) && !IsDialogMessage (g_hMDIClient, &Msg))
    O almeno ... prova. Le interfacce MDI non le ho mai usate ... salvo qualche prova sporadica in passato.
    NON VA ...

    ho provato, in questo modo con il tab key navighi da una finestra ad un'altra e non tra i controlli della mdi child, anche avendo il DS_CONTROL per la classe della MDI child ed WS_CHILD, WS_EX_CONTROLPARENT, WS_TABSTOP per i controlli perchè essendo una mdi child con IsDialogMessage esci dalla finestra attiva passando ad un'altra se presente.

    invece rimane la navigazione e chiusura finestra delle MDI con Ctrl+F4 Ctrl+F6 (questo OK)

    come risolvo ???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.