Cambiare dimensione caratteri AIUTOOO!!

di il
6 risposte

Cambiare dimensione caratteri AIUTOOO!!

Ciao a tutti
sul prompt dei comandi se si clicca con il destro e si va su proprieta - tipo caratteri - dimensioni
e possibile modificare le dimensioni del testo ad es diminuirle o ingrandirle !!
la mia domanda è come posso fare cio con un codice al interno di un programma c ??
ho trovato come cambiare colore:
 HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);  
 SetConsoleTextAttribute(hCon,"Colore"); 
ma non riesco a trovare nulla per modificare la grandezza dei caratteri !!
quello che dovrei fare e poter modificare le dimensioni da 8x12 a 4x6 e viceversa !!
grazie in anticipo !!

6 Risposte

  • Re: Cambiare dimensione caratteri AIUTOOO!!

    Sembra che esista una "API non documentata", la SetConsoleFont
    
        typedef BOOL (WINAPI *FN_SETCONSOLEFONT)(HANDLE, DWORD);
        FN_SETCONSOLEFONT SetConsoleFont;
        HMODULE hm = GetModuleHandle(_T("KERNEL32.DLL"));
        SetConsoleFont = (FN_SETCONSOLEFONT) GetProcAddress(hm, "SetConsoleFont");
        int fontIndex = 10; // 10 is known to identify Lucida Console (a Unicode font)
        BOOL bRet = SetConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE), fontIndex);
       
    ... da provare
  • Re: Cambiare dimensione caratteri AIUTOOO!!

    Grazie ma non funziona o per lo meno non ci riesco !!
    possibile che non ci sia un modo ?
  • Re: Cambiare dimensione caratteri AIUTOOO!!

    Spulciati funzioni, non so se sono tutte compatibili con il c, io ne avevo provata qualcuna e funzionava.
    ricordati che comunque queste api sono di windows quindi un programma con quelle funzioni non gira su linux, se non opportunamente ricompilato, o su altri sistemi operativi. ma del resto poco importa, è bello sbizzarrirsi nella grafica delle console
  • Re: Cambiare dimensione caratteri AIUTOOO!!

    Al posto di utilizzare il valore fisso per fontIndex, prova con un ciclo e vedi cosa succede con le varie opzioni
    
    	for (int fontIndex = 0; fontIndex<10; fontIndex++)
    	{
    		BOOL bRet = SetConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE), fontIndex);
    		printf("fontIndex %d", fontIndex);
    		getchar();
    	}
    
  • Re: Cambiare dimensione caratteri AIUTOOO!!

    Grande grazie !!
    cosi funziona !!
    e perche con un valore fisso no ??
  • Re: Cambiare dimensione caratteri AIUTOOO!!

    Ok niente mi hai sbloccato grazie !!
    ho messo il tutto in una funzione e gli passo il valore che voglio
    
     void Font(int font){
    
    typedef BOOL (WINAPI *FN_SETCONSOLEFONT)(HANDLE, DWORD);
     FN_SETCONSOLEFONT SetConsoleFont;
      HMODULE hm = GetModuleHandle(("KERNEL32.DLL"));
       SetConsoleFont = (FN_SETCONSOLEFONT) GetProcAddress(hm, "SetConsoleFont");
    
    int fontIndex = font;
     BOOL bRet = SetConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE), fontIndex);
      }
    in realtà potrei passare direttamente il valore alla funzione invece di copiarlo in un altra variabile !!
    ora lo sistemo
    cmq grazie ancora erano 2 giorni che ero ancorato !!
Devi accedere o registrarti per scrivere nel forum
6 risposte