Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [C++] tasti funzione

  1. #1

    [C++] tasti funzione

    ciao
    vorrei che nel mio programma a consolle premendo F1 la combinazione dei colori delle scritte e dello sfodo cambi.
    ho già creato la funzione che randomizza i colori e so come metterla nel programma.
    ma come faccio a fare in modo che ogni volta che premo F1 succede questo? devo implementare il codice in ogni punto fisso (intendo dove il programma si ferma cioè scanf o system("pause")) ??
    Peppe

  2. #2
    mi sento ignorato, escluso e dimenticato
    Peppe

  3. #3
    Proprio F1!

    Sinceramente non mi sono mai posto il problema.
    Però tra le API di windows ci sono funzioni che permettono di rilevare la pressione dei tasti.
    Prova a vedere qualcosa di questo tipo.

    SHORT GetAsyncKeyState(
    int vKey
    );

    a te interessa vKey=VK_F1=70
    Ci sono 10 tipi di persone al mondo, chi conosce il sistema binario e chi no.

  4. #4
    ah? come? non ho capito una mazza
    per rilevare quando viene premuto F1 lo so fare, ma non so se devo implementare quel pezzo di codice ogni volta. dico f1 per esempio perchè in effetti io voglio attribuire un comando ad ogni tasto funzione. per farlo ho creato una funzione che è bella lunga perciò vorrei fare a meno di implementarla per 20-30 volte nel programma.


    p.s. io delle api non ci ho capito niente, sono più o meno come i file .h? dove posso studiarmi (a dovere) qualcosa a riguado? consiglitemi voi, anke qualche libro se è necessario.
    Peppe

  5. #5
    Allora procediamo con calma... mettiamo da parte l' API per il momento.
    Come fai a rilevare il tasto F1 ?

    come faccio a fare in modo che ogni volta che premo F1 succede questo? devo implementare il codice in ogni punto fisso (intendo dove il programma si ferma cioè scanf o system("pause")) ??
    fai vedere un pò di codice , altrimenti non ti so aiutare
    Ci sono 10 tipi di persone al mondo, chi conosce il sistema binario e chi no.

  6. #6
    codice:
    while ( (scelta=getch()-'0')!=0 ){    \\input dalla tastiera
    	
    	switch (scelta){
         case 1:
                  ...
         case 2:
                  ...
         case 3:
                  ...
         default:
             	ctrl=fs(scelta, color);
    questo è il menù:
    se si preme 1 fa una cosa se si preme 2 un altra ecc..
    nel default ci sono sia i casi dei tasti funzione sia quandoi si sbaglia a digitare.
    la funzione "fs" serve proprio per i tasti funzione(ignora il secondo parametro)
    è costituita + o meno così:
    codice:
    ret +='0';
    ret += 256;
    switch(ret){     \\"ret" nel caso sopra descritto è "scelta"
    	
    	case 315:         //qui vale F1
    	colore(color);			
    	system(color);
    	coso=1;
    	break;
    	case 316:       //qui vale f2
                 ....
    tutto funziona perfettamente.
    solo che ho un bel pò di menu e quindi vorreri fare a meno di usare questa funzione ogni volta, chiaro?
    Peppe

  7. #7

    Re: [C++] tasti funzione

    Originariamente inviato da djpeppe
    ciao
    vorrei che nel mio programma a consolle premendo F1 la combinazione dei colori delle scritte e dello sfodo cambi.
    ho già creato la funzione che randomizza i colori e so come metterla nel programma.
    ma come faccio a fare in modo che ogni volta che premo F1 succede questo? devo implementare il codice in ogni punto fisso (intendo dove il programma si ferma cioè scanf o system("pause")) ??
    Nel tuo codice non vedo nè system("pause") nè scanf,
    non riesco a seguirti.

    L' unica cosa che mi viene in mente guardando il tuo codice,
    è che potresti richiamare la funzione (che dici di aver scritto)
    nel case giusto.
    Ci sono 10 tipi di persone al mondo, chi conosce il sistema binario e chi no.

  8. #8
    allora ripartiamo:

    hai presente word? in qualunque punto del programma se premi F1 si avvia l'aiuto.
    nella mia applicazione se quella funzione non è preesente in quel determinmato punto F1 non fa niente

    come faccio a fare che in qualsiasi punto faccia quello che voglio io????

    ok???
    Peppe

  9. #9
    Ahia credo di aver capito... tu vuoi che in qualsiasi menu ti trovi,
    la pressione di F1 faccia una determinata cosa sempre.

    Non mi vengono in mente soluzioni semplici se non quello di creare un Thread
    che controlli che non sia stato premuto F1 , ritorniamo alla funzione GetAsyncKeyState
    di cui ti ho accennato. Mi spiace ma soluzioni più semplici non me ne vengono.
    Ci sono 10 tipi di persone al mondo, chi conosce il sistema binario e chi no.

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.