aktuelle Schriftart ?



  • habe jetzt einiges ausprobiert , aber es ist mir nicht gelungen die aktuelle Schriftart welche im System eingestellt ist in einer MemoBox zu übernehmen.

    Automatisch wird nur die Caption und das Menü eines Fensters in der aktuellen Schriftart dargestellt.

    Wie kann man das anstellen ?



  • Die Googlesuche "winapi get default font" brachte u.a. folgendes Ergebnis:

    https://stackoverflow.com/questions/215988/determine-windows-system-wide-font



  • ich glaub du meinst dann diese Funktion hier ? oder welche ?

    NONCLIENTMETRICS m;
    	m.cbSize = sizeof(NONCLIENTMETRICS);
    	int f = SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS),	&m, 0) ;
    

    liefert mir 0 als Ergebniss. hatte ich alles schon durch.



  • uiParam (2. Parameter) muss 0 sein, nicht sizeof(NONCLIENTMETRICS) .

    NONCLIENTMETRICS ncm{ sizeof(NONCLIENTMETRICS) };
    BOOL result{ SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, static_cast<PVOID>(&ncm), 0) };
    


  • Swordfish schrieb:

    uiParam (2. Parameter) muss 0 sein, nicht sizeof(NONCLIENTMETRICS) .

    NONCLIENTMETRICS ncm{ sizeof(NONCLIENTMETRICS) };
    BOOL result{ SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, static_cast<PVOID>(&ncm), 0) };
    

    geht nicht selbes Ergbeniss, wahrscheinlich liegt es am OS.

    Hier dieser NETZ-FUND funktioniert einwandfrei!

    NONCLIENTMETRICS ncm = { sizeof(NONCLIENTMETRICS), 0 };
    	#if (WINVER >= 0x0600)
    	OSVERSIONINFO osvi = { sizeof(OSVERSIONINFO), 0 };
    	GetVersionEx(&osvi);
    	if (osvi.dwMajorVersion < 6) {
    		ncm.cbSize -= sizeof(int);
    	}
    	#endif
    
    	if (SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0))
    	{
    	 ShowMessage(ncm.lfMessageFont.lfFaceName);
    		//_defaultLogFont = ncm.lfMessageFont;
    	}
    


  • NONCLIENTMETRICS ncm = { sizeof(NONCLIENTMETRICS), 0 };
         #if (WINVER >= 0x0600)
        OSVERSIONINFO osvi = { sizeof(OSVERSIONINFO), 0 };
        if(GetVersionEx(&osvi))
    	   if (osvi.dwMajorVersion < 6) {
            		ncm.cbSize -= sizeof(int);
        }
         #endif
    
        if (SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0))
        {
          ShowMessage(ncm.lfMessageFont.lfFaceName);
            //_defaultLogFont = ncm.lfMessageFont;
        }
    

Log in to reply