PDA

View Full Version : [C++] Classi per gestione console in Win32


andbin
24-01-2006, 10:51
Vorrei sviluppare un set di classi C++ per la gestione della console in Win32. Mi interessa farlo sia un po' per ... sfizio e poi perché volevo sviluppare alcune applicazioni Win32 in modalità console.
Più che a livello di programmazione, ho alcuni dubbi per quanto riguarda il "design" delle classi.
Premetto che vorrei gestire praticamente tutto della console, compresi gli screen buffer.

Prendiamo i seguenti punti:
- Uno screen buffer è una area rettangolare composta da caratteri/attributi ed ha una serie di proprietà quali dimensione, posizione finestra, stato del cursore, ecc...
- Si possono creare N screen buffer (con la funzione CreateConsoleScreenBuffer che restituisce un handle apposito). Ogni buffer è indipendente ed ha le sue proprietà come specificato nel punto prima.
- Una console ha uno screen buffer predefinito (l'handle ottenuto chiamando GetStdHandle (STD_OUTPUT_HANDLE) ) e può avere 1 solo screen buffer attivo per volta (impostabile con la funzione SetConsoleActiveScreenBuffer).

Visto che ci possono essere N screen buffer e che una console per default ha (direi anche che "è") uno screen buffer pensavo di fare così: creare una classe base ConsoleBuffer e poi derivare da questa una nuova classe Console.
Nella classe ConsoleBuffer ci metto tutti i metodi che gestiscono/operano su uno screen buffer (impostazione attributi, scrittura, ecc...). Nella classe Console ci metto il resto (gestione dell'input, ecc...).

Secondo voi è giusto? Vi "quadra"??? Spero di non aver detto fesserie! ;)