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
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
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.
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
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);
}
Hi Timo,
Compiling your code, I get the font not found message on Windows 7 Sp1.
https://fonts.google.com/specimen/Cascadia+Mono (https://fonts.google.com/specimen/Cascadia+Mono)
Just an external font
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)...
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;
}
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
ls.lsUsb[1]: 0x28010000
ls.lsUsb[2]: 0x00000002
ls.lsUsb[3]: 0x80000000
ls.lsCsbSupported
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)
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.
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...
Quote from: Pelle on April 21, 2026, 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
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...
Thank you very much Pelle! It is a efficient way.
OK, cool. The fix will be in the next update.