C ++ SetCurrentConsoleFontEx не завершается ошибкой, но также не устанавливает шрифт - PullRequest
0 голосов
/ 07 декабря 2018

В моей домашней системе Win7x64 English / Nordic эта функция работает нормально, но в рабочей системе Win10x64 Japanese она не выходит из строя, но шрифт шрифта остается неизменным.

В обеих системахон говорит «Шрифт был установлен на« Consolas ».»

В моей домашней системе, проверяя свойства окна консоли, это действительно Consolas, но в рабочей системе он выбранРастровые шрифты: SimSun-ExtB, поэтому кажется, что что-то игнорируется или передается неправильно.Понятия не имею почему.Кто-нибудь имеет опыт работы с этим?

Это код, который я использую для установки шрифта:

inline void SetFont(const std::string& font = "Consolas") {
    CONSOLE_FONT_INFOEX cfi;
    cfi.cbSize = sizeof(cfi);
    //cfi.nFont = 0;
    cfi.dwFontSize.X = 8;                   // Width of each character in the font
    cfi.dwFontSize.Y = 16;                  // Height
    cfi.FontFamily = FF_DONTCARE;
    cfi.FontWeight = FW_NORMAL;

    std::wstring widestr = std::wstring(font.begin(), font.end());
    std::wcscpy(cfi.FaceName, widestr.c_str());

    if (SetCurrentConsoleFontEx(h_Console, FALSE, &cfi) == FALSE) {
        Test("Could not set the font to '"+font+"'.");
    }
    else { Test("Font was set to '" + font + "'."); }

    SetConsoleTextAttribute(h_Console, m_TextColorNow);
}
...