2

Windows でのみ実行されるコンソール アプリケーションを C++ で開発しました。プログラムの実行時にコマンド プロンプトのテキスト サイズを変更したいと考えています。私はいくつかの検索を行いましたが、問題を解決するものは見つかりませんでした。誰もが色を変えることについて話しているだけです。

とにかく、これが可能であれば、コマンドプロンプトのテキストサイズを変更するにはどうすればよいですか?

ありがとうございました!

4

2 に答える 2

4

現在のフォント情報を取得する前に、CONSOLE_FONT_INFOEX 構造体を sizeof(CONSOLE_FONT_INFOEX) で初期化する必要があります。
また、利用可能なサイズのみを使用する必要があります。

  • 4×6
  • 16×8
  • 6×9
  • 8×9
  • 5×12
  • 7×12
  • 8×12
  • 16×12
  • 12×16
  • 10×18
BOOL SetConsoleFontSize(COORD dwFontSize){
    HANDLE output = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_FONT_INFOEX info{sizeof(CONSOLE_FONT_INFOEX)};
    if (!GetCurrentConsoleFontEx(output, false, &info))
        return false;
    info.dwFontSize = dwFontSize;
    return SetCurrentConsoleFontEx(output, false, &info);
}
于 2014-09-21T15:23:28.593 に答える
-1

構造体を使用してCONSOLE_FONT_INFOEX、コマンド プロンプト書き込みのテキスト/書式設定のパラメーターを指定できます。

詳細については、ここをクリックしてください

上記リンクより抜粋。

ここに完全な例があります。どうやら関数 Get/SetCurrentConsoleFontEx は Windows Vista 以降でのみ使用できるため、機能するかどうかはわかりません。

#include <iostream>
#include <windows.h>

int main(){
    HANDLE outcon = GetStdHandle(STD_OUTPUT_HANDLE);//you don't have to call this function every time

    CONSOLE_FONT_INFOEX font;//CONSOLE_FONT_INFOEX is defined in some windows header
    GetCurrentConsoleFontEx(outcon, false, &font);//PCONSOLE_FONT_INFOEX is the same as CONSOLE_FONT_INFOEX*
    font.dwFontSize.X = 7;
    font.dwFontSize.Y = 12;
    SetCurrentConsoleFontEx(outcon, false, &font);

    SetConsoleTextAttribute(outcon, 0x0C);
    std::cout << "I'm red";
    std::cin.get();
    return 0;
}
于 2013-08-07T21:51:48.267 に答える