|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
27-10-2007, 17.30.10 | #1 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
[C] Creare un'interfaccia dos
Dove posso documentarmi? |
27-10-2007, 19.33.07 | #2 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Che bello, un nostalgico come me.
Bene, come creare i riquadri è semplice. Cercati una tabella di codici ASCII. Per quanto riguarda la selezione, a te basta riscrivere l'intera stringa con colore di foreground e background differenti. A tal proposito ti suggerisco di utilizzare degli array Lo scrolling della finestra puoi effettuarlo a mano riscrivendo ogni array, oppure facendo ricorso alle funzioni del BIOS. Non è detto che tu possa accedere a basso livello agli interrupt da richiamare per effettuare l'operazione, quindi ti consiglio di far ricorso alle API messe a disposizione da mamma M$ per quanto riguarda lo scrolling della console (Intera finestra o parte di essa). C'è da lavorare ... (bei tempi) Ultima modifica di LoryOne : 27-10-2007 alle ore 19.35.22 |
27-10-2007, 20.12.28 | #3 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
La grafica so come farla, non è un problema, il mio pensiero è soprattutto rivolto al come far muovere la selezione con le frecce, ma vediamo se ho ben interpretato il tuo messaggio.
Posso fare in modo che appena mostrato il menu, una voce sia evidenziata e fin qui no problem, poi metto uno switch che mi discrimini la pressiione del tasto "freccia su" e del tasto "freccia giù", ignorando ogni altro tasto. Questo penso di saperlo fare, mi basta trovare il codice che invia la pressione di "freccia su" e quello "freccia giù", quindi attivare rispettivamente l'API SetConsoleCursorPosition decrementando di uno la riga nel primo caso e incrementandola di uno nel secondo e quindi cambiare i colori foreground e background per le due righe coinvolte nell'operazione. Infine, alla pressione di "invio" deve esser presa la riga su cui si trova il cursore, e prevedere un altro switch che attiva la routine che si trova elencata su quella riga in quel momento. Ci sono oppure ho detto un mare di stupidate? |
27-10-2007, 20.18.42 | #4 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Corretto mastro (Y)
|
27-10-2007, 20.30.08 | #5 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Che ne dici di aggiungere la possibilità di effettuare la selezione attraverso il mouse ?
------------------------------------------------------------------------ API anche per questo, ma è meglio, visto che con il vecchio DOS era necessario un driver per abilitarlo ed ottenere l'interfaccia per definirne dimensione, identificazione del numero di tasti utilizzabili, pressione e rilascio. Cos'è cambiato con Windows ? Mah. ------------------------------------------------------------------------ Andiamo con ordine e pazienza, intanto produci |
27-10-2007, 21.29.54 | #6 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
Domani mi metto all'opera.
Grazie |
28-10-2007, 15.09.52 | #7 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
Non riesco a trovare una API che mi ritorni le coordinate del cursore all'interno della console, non c'è proprio o non la trovo io?
EDIT: ho trovato GetCursorPos, devo passargli un puntatore ad una struttura di tipo point, ma se lo faccio con: Codice:
typedef unsigned int UINT; typedef struct _POINT { UINT x; UINT y; }cursore, *LPPOINT; error C2371: 'LPPOINT' : redefinition; different basic types Ultima modifica di Alhazred : 28-10-2007 alle ore 15.31.25 |
28-10-2007, 15.40.46 | #8 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
Ho risolto il problema sopra, ma ora mi dice che non ho inizializzato la variabile.
Mi sa che comunque si riferisce al mouse... |
29-10-2007, 16.50.51 | #9 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
La struttura POINT è decisamente generica, ma non è da scartare.
(Dalla struttura POINT derivano le coordinate degli estremi dell' area di una qualsiasi finestra, nonchè le coordinate del puntatore del mouse) Ascolta, cerca di intendere la shell del DOS come una finestra a se, in qualche modo scissa da Windows. Esistono funzioni API specifiche per la shell del DOS, quinid mamma M$ ha lavorato per te (a dire il vero più per se, ma noi siamo programmatori, non ingegneri ) . Cerca documentazione su ReadConsoleInput e vedrai che sarai in grado di gestire li eventi della tastiera, così come quelli del mouse. La shell del DOS è una finestra a se. |
29-10-2007, 23.46.29 | #10 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
Ho trovato molto interessante questo codice, all'interno sono definiti i vari menu da mostrare secondo la struttura
Codice:
typedef struct menu_item { const char *title; struct menu_item const *submenu; void(*function)(void); }menu_item; Codice:
menu_item const sub_menu_2[] = { {"New SMS", NULL, func_21}, {"List", NULL, func_22}, {"Back", NULL, NULL}, {NULL, NULL, NULL} }; Codice:
menu_item const main_menu[] = { {"Scrivi nuova email", NULL, ScriviMail(hServer,hClient)}, {"Leggi email ricevute", NULL, LeggiMail(hServer,hClient,2)}, {"Leggi email inviate", NULL, LeggiMail(hServer,hClient,3)}, //ecc... {NULL, NULL, NULL} }; |
30-10-2007, 08.05.41 | #11 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Ma Alh...tu passi dei parametri alle funzioni
|
30-10-2007, 09.34.58 | #12 |
Made in Japan
Top Poster
Registrato: 04-07-2001
Messaggi: 4.461
|
Si si, lo so che non è fattibile così come è scritto il codice che ho linkato, ma se ci fosse un modo per mettere delle chiamate a funzioni credo che avrei risolto tutti i miei problemi.
|
10-11-2007, 10.32.45 | #13 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Allora Alh, prodotto qualcosa o siamo fermi ?
Lo vedo che il codice utilizza array sottoforma di struct e "mal si adatta" al tuo codice che utilizza funzioni parametriche, ma c'è più di un modo per procedere adattando il tuo codice a quello dell' esmpio. Puoi pensare ad esempio di utilizzare variabili globali la dove utilizzi parametri. |
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Software hdclone per creare immagini del disco in caso di ripristino | Moon75 | Software applicativo | 23 | 04-10-2008 18.07.10 |
[Java] Creare un frame con menu e grafica | Alhazred | Programmazione | 10 | 28-06-2007 21.55.52 |
soft per creare pdf | luca2 | Software applicativo | 3 | 06-11-2006 18.18.28 |
[XP] Creare cartella condivisa da limitato | AMIGA | Windows 7/Vista/XP/ 2003 | 0 | 13-10-2006 14.28.16 |
Creare partizione di swap | Slith | Windows 7/Vista/XP/ 2003 | 12 | 20-09-2004 18.44.10 |