Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Dimensione e tipo di Font nella Console
Forum - C/C++ - Dimensione e tipo di Font nella Console

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
Oneiros (Normal User)
Newbie


Messaggi: 15
Iscritto: 05/06/2010

Segnala al moderatore
Postato alle 12:57
Sabato, 05/06/2010
Ciao ragazzi, sono nuovo del Forum :D
Sono al primo anno di università, frequento la facoltà di Informatica e sto sviluppando un progetto per il corso di Programmazione e Laboratorio...
Il mio programma è già terminato e adesso mi sto concentrando sul suo aspetto grafico: partendo dalla libreria Windows.h mi sono creato una libreria personale che mi consente di fare numerose operazioni grafiche (come cambiare colore al font, cambiare il colore di sfondo, centrare la finestra della console, ridimensionarla ecc...)

Il mio problema è che non riesco a fare alcuna operazioni sul Font della console se non quella di cambiarne il colore. Avrei bisogno di una funzione per cambiare la grandezza del carattere, una che ritorni la grandezza del carattere attualmente in uso e una per cambiare il tipo di carattere.

E' possibile tramite la libreria Windows.h?

Inoltre mi sarebbe utile una funzione che restituisca un Handle alla finestra della console (la funzione che ho trovato su internet funziona ma non mi piace come è implementata...)

Grazie mille ;)

Ultima modifica effettuata da Oneiros il 05/06/2010 alle 13:02
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 13:13
Sabato, 05/06/2010
Testo quotato

Postato originariamente da Oneiros:
E' possibile tramite la libreria Windows.h?



Windows.h non è una libreria

PM Quote
Avatar
Oneiros (Normal User)
Newbie


Messaggi: 15
Iscritto: 05/06/2010

Segnala al moderatore
Postato alle 13:39
Sabato, 05/06/2010
Chiedo umilmente perdono -.-
complimenti per il bel trattamento che riservate ai nuovi

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:50
Sabato, 05/06/2010
Testo quotato

Postato originariamente da Oneiros:

Chiedo umilmente perdono -.-
complimenti per il bel trattamento che riservate ai nuovi



Sei suscettibile ... E che ti hanno fatto ? :asd:

Ti è stato detto che windows.h non è una libreria (cosa che ti servirà nella tua carriera universitaria e quindi utile ...)

Per il tuo problema, intanto non ti consiglio di fare tutto questo sforzo su un'applicazione console. Se vuoi un completo controllo grafico, sviluppa una applicazione GUI non Console.

Per quanto riguarda la funzione dell'handle che non ti piace, a quale ti riferisci e perchè non ti piace se funziona?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Oneiros (Normal User)
Newbie


Messaggi: 15
Iscritto: 05/06/2010

Segnala al moderatore
Postato alle 14:10
Sabato, 05/06/2010
Testo quotato

Postato originariamente da nessuno:

Testo quotato

Postato originariamente da Oneiros:

Chiedo umilmente perdono -.-
complimenti per il bel trattamento che riservate ai nuovi



Sei suscettibile ... E che ti hanno fatto ? :asd:

Ti è stato detto che windows.h non è una libreria (cosa che ti servirà nella tua carriera universitaria e quindi utile ...)

Per il tuo problema, intanto non ti consiglio di fare tutto questo sforzo su un'applicazione console. Se vuoi un completo controllo grafico, sviluppa una applicazione GUI non Console.

Per quanto riguarda la funzione dell'handle che non ti piace, a quale ti riferisci e perchè non ti piace se funziona?



Grazie "nessuno" per la tua risposta :)

Forse sono suscettibile, ma mi aspettavo una risposta meno fredda e meno "di sufficienza". Avrebbe potuto almeno spiegarmi perchè non è una libreria

Non credo che svilupperemo applicazioni GUI in C, vorrei migliorare per ora la mia applicazione Console (il progetto devo farla su quella :) )

Questa è la funzione dell'Handle che ho trovato su internet:

Codice sorgente - presumibilmente C++

  1. HWND getConsoleHwnd() {
  2.     int bufSize = 1024;
  3.     char newTitle[bufSize];
  4.     char oldTitle[bufSize];
  5.     GetConsoleTitle(oldTitle, bufSize);
  6.     wsprintf(newTitle, "%d/%d", GetTickCount(), GetCurrentProcessId());
  7.     SetConsoleTitle(newTitle);
  8.     Sleep(40);
  9.     HWND hwndFound = FindWindow(NULL, newTitle);
  10.     SetConsoleTitle(oldTitle);
  11.     return hwndFound;
  12. }



Non mi piace perchè non credo che sia necessario cambiare il titolo della finestra :om:

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:27
Sabato, 05/06/2010
Testo quotato

Postato originariamente da Oneiros:
Forse sono suscettibile, ma mi aspettavo una risposta meno fredda e meno "di sufficienza". Avrebbe potuto almeno spiegarmi perchè non è una libreria



Sai ... il fatto è che questo "equivoco" è fatto da quasi tutti quelli che frequentano forum di programmazione (e questo evidenzia il fatto che mancano di basi necessarie ...) e ripetere sempre le stesse cose, a volte, è fonte di "stress" ...

Vedere poi che lo dice anche chi frequenta "informatica", può fare "scappare" questo tipo di risposte ...

windows.h (come tutti i file .h) sono semplici "header file" (sorgenti che contengono dichiarazioni di funzioni, costanti, macro, tipi di dati ma NON contengono codice).
Le librerie (statiche .lib, .a o dinamiche .dll, .so) sono i file che contengono l'effettiva implementazione delle funzioni dichiarate negli include. Il codice vero e proprio sta in questi file.

Gli include sono necessari quando si compila, i secondi per la fase di linking ...

Testo quotato

Non credo che svilupperemo applicazioni GUI in C, vorrei migliorare per ora la mia applicazione Console (il progetto devo farla su quella :) )



Purtroppo il supporto per i font delle applicazioni console non è elevato.

Esiste una API SetCurrentConsoleFontEx ma è diponibile solo da Windows Vista (e 2008) in poi. C'è, ma non è documentata (e quindi sconsigliata) una API SetConsoleFont.

Testo quotato


Questa è la funzione dell'Handle che ho trovato su internet



Ma tu cerchi l'handle della tua applicazione console o di una applicazione console che sta girando nel tuo sistema?

Ultima modifica effettuata da nessuno il 05/06/2010 alle 14:31


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:29
Sabato, 05/06/2010
Postato originariamente da Oneiros:
Forse sono suscettibile, ma mi aspettavo una risposta meno fredda e meno "di sufficienza". Avrebbe potuto almeno spiegarmi perchè non è una libreria

Beh forse hai ragione. Windows.h non è una libreria, bensì un header contenente le dichiarazioni delle funzioni delle API di Windows.

PM Quote
Avatar
Oneiros (Normal User)
Newbie


Messaggi: 15
Iscritto: 05/06/2010

Segnala al moderatore
Postato alle 15:26
Sabato, 05/06/2010
Testo quotato

Postato originariamente da nessuno:
Sai ... il fatto è che questo "equivoco" è fatto da quasi tutti quelli che frequentano forum di programmazione (e questo evidenzia il fatto che mancano di basi necessarie ...) e ripetere sempre le stesse cose, a volte, è fonte di "stress" ...

Vedere poi che lo dice anche chi frequenta "informatica", può fare "scappare" questo tipo di risposte ...



Purtroppo il nostro corso di programmazione è organizzato con i piedi ed il nostro professore è meno preparato di quello che ci faceva smanettare con Turbo Pascal in seconda media :_doubt:
Mi sto arrangiando da solo per imparare il C

Testo quotato

windows.h (come tutti i file .h) sono semplici "header file" (sorgenti che contengono dichiarazioni di funzioni, costanti, macro, tipi di dati ma NON contengono codice).
Le librerie (statiche .lib, .a o dinamiche .dll, .so) sono i file che contengono l'effettiva implementazione delle funzioni dichiarate negli include. Il codice vero e proprio sta in questi file.

Gli include sono necessari quando si compila, i secondi per la fase di linking ...



Hai proprio ragione che mi mancano le basi, è la prima volta che leggo certe cose :asd: ma come ho detto non ho nessun punto di riferimento...
Pensavo (erroneamente a quanto pare) che "header" e "libreria" fossero sinonimi e avessero entrambe estensione .h.
Quindi è sbagliato fornire l'implementazione delle funzioni all'interno degli header file? E se è sbagliato, perchè i miei programmi compilano e funzionano tranquillamente con il mio header?

Testo quotato

Esiste una API SetCurrentConsoleFontEx ma è diponibile solo da Windows Vista (e 2008) in poi. C'è, ma non è documentata (e quindi sconsigliata) una API SetConsoleFont.



Grazie cercherò su google ^__^

Testo quotato

Ma tu cerchi l'handle della tua applicazione console o di una applicazione console che sta girando nel tuo sistema?



della mia applicazione

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:46
Sabato, 05/06/2010
Testo quotato

Postato originariamente da Oneiros:
Quindi è sbagliato fornire l'implementazione delle funzioni all'interno degli header file?



Assolutamente.

Testo quotato

E se è sbagliato, perchè i miei programmi compilano e funzionano tranquillamente con il mio header?



Sbagliato non significa che non funziona.

Per semplici codici puoi non accorgerti dei problemi che si saranno quando il progetto sarà complesso. Allora capirai perchè esiste una certa organizzazione del codice sorgente.

Testo quotato

della mia applicazione



Allora basta semplicemente una linea, ovvero

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo