Some fonts are missing from the font file list.

Started by ander_cc, April 14, 2026, 08:58:13 AM

Previous topic - Next topic

ander_cc

Like "Cascadia Mono", I can't see it in font name list. But can set in theme file.
Btw: When I was translating rc file, I noticed line 3409 had still read "version 13.00".
See attach files.
Pelles C v14, Windows 11 pro Chinese (Samplify) 25H2

John Z

#1
Hi ander_cc,

On my system the Cascadia fonts are there. See attachment.
Windows 11 Home 25H2, so seems they 'should' be there on Pro . . . it is not a Pelles IDE issue I think...

Try going to windows settings, personalization, fonts, then see what is there.

John Z

P.S. The title on the resource 9 file also shows 13 I believe

ander_cc

Quote from: John Z on April 14, 2026, 01:55:09 PMHi ander_cc,

On my system the Cascadia fonts are there. See attachment.
Windows 11 Home 25H2, so seems they 'should' be there on Pro . . . it is not a Pelles IDE issue I think...

Try going to windows settings, personalization, fonts, then see what is there.

John Z

P.S. The title on the resource 9 file also shows 13 I believe
I also try it in my laptop, it is Win11 Home 25h2, and a Win10 pc, but miss some fonts too. Maybe this issue is only related to the Windows Chinese Edition.

John Z

You could be right, seems like it.  Did you check windows settings, personalization, fonts ..... that would be definitive if it is not showing there.

You might try Microsoft Store and see if the font is available to be installed.

John Z

TimoVJL

#4
Silly example to check if font exists
#define WIN32_LEAN_AND_MEAN
#include <windows.h>

int CALLBACK EnumFontFamProc(const LOGFONT *lpelf, const TEXTMETRIC *lpntm,
  DWORD FontType, LPARAM lParam)
{
    static int nCnt;
    OutputDebugString(lpelf->lfFaceName);
    if (!lstrcmp(lpelf->lfFaceName, (TCHAR*)lParam))
        nCnt++;
    return nCnt;
}

void __cdecl WinMainCRTStartup(void)
{
    HDC hDC = GetDC(GetDesktopWindow());
    //int nFont = EnumFontFamilies(hDC, TEXT("Consolas"), EnumFontFamProc, (LPARAM)TEXT("Consolas"));
    int nFont = EnumFontFamilies(hDC, TEXT("Cascadia Mono"), EnumFontFamProc, (LPARAM)TEXT("Cascadia Mono"));
    if (nFont) MessageBox(0, "font found", "Font", MB_OK);
    else MessageBox(0, "font not found", "Font", MB_OK);
    ExitProcess(0);
}
May the source be with you

Vortex

Hi Timo,

Compiling your code, I get the font not found message on Windows 7 Sp1.
Code it... That's all...

TimoVJL

May the source be with you

Pelle

I am deliberately filtering the fonts list. At least last time I checked, several years ago, not doing this filtering gave me many fonts I couldn't use.
I will have to think about this (when I can find the time)...
/Pelle

Pelle

Quote from: ander_cc on April 14, 2026, 08:58:13 AMLike "Cascadia Mono", I can't see it in font name list. But can set in theme file.
Btw: When I was translating rc file, I noticed line 3409 had still read "version 13.00".
The version is in many places, this place is less important. I will fix this some day.

To get some progress here, could you please compile and run the following program. If you see fonts in the output that you want, but don't see in the IDE, please post the following info:

1) The 6 lines following "#1: LOCALE FONT SIGNATURE"
2) The 3-9 lines from "#2: LIST OF FONTS" for the missing font(s).

#define WIN32_LEAN_AND_MEAN
#define UNICODE
#include <windows.h>
#include <stdio.h>

#pragma comment(lib, "user32.lib")
#pragma comment(lib, "gdi32.lib")

#define DWFMT  "%#010lx"

static wchar_t *CharSetName(BYTE bCharSet)
{
#define CASE(x) case x: return L"" # x
    switch (bCharSet)
    {
        CASE(ANSI_CHARSET);
        CASE(ARABIC_CHARSET);
        CASE(BALTIC_CHARSET);
        CASE(CHINESEBIG5_CHARSET);
        CASE(DEFAULT_CHARSET);
        CASE(EASTEUROPE_CHARSET);
        CASE(GB2312_CHARSET);
        CASE(GREEK_CHARSET);
        CASE(HANGEUL_CHARSET);
        CASE(HEBREW_CHARSET);
        CASE(JOHAB_CHARSET);
        CASE(MAC_CHARSET);
        CASE(OEM_CHARSET);
        CASE(RUSSIAN_CHARSET);
        CASE(SHIFTJIS_CHARSET);
        CASE(SYMBOL_CHARSET);
        CASE(THAI_CHARSET);
        CASE(TURKISH_CHARSET);
        CASE(VIETNAMESE_CHARSET);
        default: return L"?";
    }
#undef CASE
}

static wchar_t *FontTypeName(DWORD dwFontType)
{
#define CASE(x) case x: return L"" # x
    switch (dwFontType)
    {
        CASE(DEVICE_FONTTYPE);
        CASE(RASTER_FONTTYPE);
        CASE(TRUETYPE_FONTTYPE);
        case 0: return L"0";
        default: return L"?";
    }
#undef CASE
}

static int CALLBACK EnumFontFaceProc(const ENUMLOGFONTEX *pelf,
    const NEWTEXTMETRICEX *pntm, DWORD dwFontType, LPARAM lParam)
{
    LOCALESIGNATURE *pls = (void *)lParam;

    printf("  ------------------------------\n");

    printf("  lfFaceName: \"%ls\"\n", pelf->elfLogFont.lfFaceName);
    printf("  dwFontType: %ls\n", FontTypeName(dwFontType));
    printf("  lfCharSet: %ls\n", CharSetName(pelf->elfLogFont.lfCharSet));

    if ((dwFontType & TRUETYPE_FONTTYPE) != 0)
    {
        printf("  ntmFontSig.fsUsb[0]: " DWFMT " (mask locale => " DWFMT ")\n",
             pntm->ntmFontSig.fsUsb[0],
            (pntm->ntmFontSig.fsUsb[0] & pls->lsUsb[0]));

        printf("  ntmFontSig.fsUsb[1]: " DWFMT " (mask locale => " DWFMT ")\n",
             pntm->ntmFontSig.fsUsb[1],
            (pntm->ntmFontSig.fsUsb[1] & pls->lsUsb[1]));

        printf("  ntmFontSig.fsUsb[2]: " DWFMT " (mask locale => " DWFMT ")\n",
             pntm->ntmFontSig.fsUsb[2],
            (pntm->ntmFontSig.fsUsb[2] & pls->lsUsb[2]));

        printf("  ntmFontSig.fsUsb[3]: " DWFMT " (mask locale => " DWFMT ")\n",
             pntm->ntmFontSig.fsUsb[3],
            (pntm->ntmFontSig.fsUsb[3] & pls->lsUsb[3]));


        printf("  ntmFontSig.fsCsb[0]: " DWFMT " (mask locale => " DWFMT ")\n",
             pntm->ntmFontSig.fsCsb[0],
            (pntm->ntmFontSig.fsCsb[0] & pls->lsCsbSupported[0]));

        printf("  ntmFontSig.fsCsb[1]: " DWFMT " (mask locale => " DWFMT ")\n",
             pntm->ntmFontSig.fsCsb[1],
            (pntm->ntmFontSig.fsCsb[1] & pls->lsCsbSupported[1]));
    }

    return 1;
}

int main(void)
{
    HDC hdc = GetDC(NULL);
    if (hdc != NULL)
    {
        LOCALESIGNATURE ls;

        if (!GetLocaleInfoEx(LOCALE_NAME_USER_DEFAULT, LOCALE_FONTSIGNATURE,
            (WCHAR *)&ls, sizeof(ls) / sizeof(WCHAR)))
            return 1;

        printf("#1: LOCALE FONT SIGNATURE:\n");
        printf("  ls.lsUsb[0]: " DWFMT "\n", ls.lsUsb[0]);
        printf("  ls.lsUsb[1]: " DWFMT "\n", ls.lsUsb[1]);
        printf("  ls.lsUsb[2]: " DWFMT "\n", ls.lsUsb[2]);
        printf("  ls.lsUsb[3]: " DWFMT "\n", ls.lsUsb[3]);
        printf("  ls.lsCsbSupported[0]: " DWFMT "\n", ls.lsCsbSupported[0]);
        printf("  ls.lsCsbSupported[1]: " DWFMT "\n", ls.lsCsbSupported[1]);

        printf("\n#2: LIST OF FONTS:\n");
        LOGFONT lf = {
            .lfCharSet = DEFAULT_CHARSET,
            .lfFaceName[0] = L'\0',
            .lfPitchAndFamily = 0,
        };
        EnumFontFamiliesEx(hdc, &lf, (FONTENUMPROC)EnumFontFaceProc, (LPARAM)&ls, 0);

        ReleaseDC(NULL, hdc);
        return 0;
    }
    return 1;
}
/Pelle

ander_cc

Quote from: Pelle on April 19, 2026, 09:36:31 PMThe version is in many places, this place is less important. I will fix this some day.

To get some progress here, could you please compile and run the following program. If you see fonts in the output that you want, but don't see in the IDE, please post the following info:

1) The 6 lines following "#1: LOCALE FONT SIGNATURE"
2) The 3-9 lines from "#2: LIST OF FONTS" for the missing font(s).
Thank you!
#1: LOCALE FONT SIGNATURE:
  ls.lsUsb
  • : 0000000000
  ls.lsUsb[1]: 0x28010000
  ls.lsUsb[2]: 0x00000002
  ls.lsUsb[3]: 0x80000000
  ls.lsCsbSupported
  • : 0x00040000
  ls.lsCsbSupported[1]: 0000000000

#2: LIST OF FONTS:

Cascadia font family all miss and Consolas font.

  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ANSI_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: GREEK_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: TURKISH_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: BALTIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: EASTEUROPE_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: RUSSIAN_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Consolas"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: VIETNAMESE_CHARSET
  ntmFontSig.fsUsb[0]: 0xe00006ff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0x0000fcff (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00000001 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x6000019f (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xdfd70000 (mask locale => 0000000000)
   lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ANSI_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: HEBREW_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ARABIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: GREEK_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: TURKISH_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: BALTIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: EASTEUROPE_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: RUSSIAN_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Code"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: VIETNAMESE_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
   ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ANSI_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: HEBREW_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ARABIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: GREEK_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: TURKISH_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: BALTIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: EASTEUROPE_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: RUSSIAN_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: VIETNAMESE_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ANSI_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: HEBREW_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: ARABIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: GREEK_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: TURKISH_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: BALTIC_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: EASTEUROPE_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: RUSSIAN_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)
  ------------------------------
  lfFaceName: "Cascadia Mono SemiBold"
  dwFontType: TRUETYPE_FONTTYPE
  lfCharSet: VIETNAMESE_CHARSET
  ntmFontSig.fsUsb[0]: 0xa1002aff (mask locale => 0000000000)
  ntmFontSig.fsUsb[1]: 0xc200f9fb (mask locale => 0000000000)
  ntmFontSig.fsUsb[2]: 0x00040020 (mask locale => 0000000000)
  ntmFontSig.fsUsb[3]: 0000000000 (mask locale => 0000000000)
  ntmFontSig.fsCsb[0]: 0x600001ff (mask locale => 0000000000)
  ntmFontSig.fsCsb[1]: 0xffff0000 (mask locale => 0000000000)

ander_cc

Quote from: Pelle on April 18, 2026, 05:58:35 PMI am deliberately filtering the fonts list. At least last time I checked, several years ago, not doing this filtering gave me many fonts I couldn't use.
I will have to think about this (when I can find the time)...
I check the output of your code paste below.
I think you filter the fonts with "GB2312_CHARSET" ? Maybe add "ANSI_CHARSET" could fix it.

Pelle

Thank you for the info!

Quote from: ander_cc on April 20, 2026, 10:02:34 AMI check the output of your code paste below.
I think you filter the fonts with "GB2312_CHARSET" ? Maybe add "ANSI_CHARSET" could fix it.
Maybe. I need to check things more - this part of the IDE hasn't changed for 10+ years, so...
/Pelle

John Z

Quote from: Pelle on Yesterday at 03:05:19 PMMaybe. I need to check things more - this part of the IDE hasn't changed for 10+ years, so...

I'm confused - If it is an IDE issue then why using the same IDE do I see the fonts?
Attached screen shot -

First thing to do is check check windows settings, personalization, fonts to see if it is there.  It is possible and likely that putting it into the manifest it appears to work because windows will find the closest match to a font if that font is missing, as I recall. And verified with a web search

"Yes, Windows automatically substitutes a missing font with a default font (usually Microsoft Sans Serif or Arial) when it encounters a document or application requiring a font not installed on the system. This process ensures text remains visible, though it may change the document's formatting, layout, and appearance.
Key details on Windows font substitution:

    Automatic Process: When a specified font is unavailable, Windows attempts to map the missing font to an available one based on internal registry settings."


John Z

Pelle

The filtering is supposed to exclude fonts not useful in the current locale. The problem is that for a (C) programming environment, it's hard to ignore the Latin alphabet.

So, ander_cc, changing filtering code in EnumFontFaceProc() from...
if ((dwFontType & TRUETYPE_FONTTYPE) != 0 &&
        (pntm->ntmFontSig.fsCsb[0] & pls->lsCsbSupported[0]) == 0 &&
        (pntm->ntmFontSig.fsCsb[1] & pls->lsCsbSupported[1]) == 0)
        return 1;  /* unwanted font, but keep enumerating */

...to this, should fix the problem... right?
    if ((dwFontType & TRUETYPE_FONTTYPE) != 0 &&

        (pntm->ntmFontSig.fsCsb[0] & FS_LATIN1) == 0 &&    /* <=== NEW */

        (pntm->ntmFontSig.fsCsb[0] & pls->lsCsbSupported[0]) == 0 &&
        (pntm->ntmFontSig.fsCsb[1] & pls->lsCsbSupported[1]) == 0)
        return 1;  /* unwanted font, but keep enumerating */
Not pretty, but I can't a better approach right now so this will have to do...
/Pelle