winAPI: Jak powiększyć czcionkę w polu tekstowym?

0

j.w.

0

Po prostu musisz zastosować odpowiednią czcionkę i jej rozmiar do editboxa.

np.:
HFONT hFont = CreateFont(-20, 0, 0, 0, 400, FALSE, FALSE, FALSE, 1, 400, 0, 0, 0, ("Ms Shell Dlg"));
SendMessage(hWnd, WM_SETFONT, (WPARAM)hFont, false);

3

HFONT hFont = CreateFont(-20, 0, 0, 0, 400, FALSE, FALSE, FALSE, 1, 400, 0, 0, 0, ("Ms Shell Dlg"));

U ja cię.

Dlatego nie lubię CreateFont. Bo czym jest to 400? ;-)

LOGFONT lf = {};
lf.lfHeight = -20;
strcpy(lf.lfFaceName, "Tahoma");
HFONT hFont = CreateFontIndirect(&lf);
0
mwl4 napisał(a):

Po prostu musisz zastosować odpowiednią czcionkę i jej rozmiar do editboxa.

np.:
HFONT hFont = CreateFont(-20, 0, 0, 0, 400, FALSE, FALSE, FALSE, 1, 400, 0, 0, 0, ("Ms Shell Dlg"));
SendMessage(hWnd, WM_SETFONT, (WPARAM)hFont, false);

Ten sposób nie działa, nic się nie zmienia...

Azarien napisał(a):

HFONT hFont = CreateFont(-20, 0, 0, 0, 400, FALSE, FALSE, FALSE, 1, 400, 0, 0, 0, ("Ms Shell Dlg"));

U ja cię.

Dlatego nie lubię CreateFont. Bo czym jest to 400? ;-)

LOGFONT lf = {};
lf.lfHeight = -20;
strcpy(lf.lpszFace, "Tahoma");
HFONT hFont = CreateFontIndirect(&lf);

Kompilator mówi:
82 C:\Users\admin\Documents\C++\Test z czcionką\main.cpp 'struct LOGFONT' has no member named 'lpszFace'

0

Dobra, to teraz robię to w taki sposób:

//...

LOGFONT lf = {};
    lf.lfHeight = -20;
    strcpy(lf.lfFaceName, "Tahoma");
    HFONT hFont = CreateFontIndirect(&lf);
    
    HWND hTlo = CreateWindowEx( 0, "STATIC", NULL, WS_CHILD | WS_VISIBLE,
    0, 0, rcl.right, rcl.bottom, hwnd, NULL, hInstance, NULL );
    
    SendMessage(hwnd, WM_SETFONT, (WPARAM)hFont, false);
    
    HWND hInfo = CreateWindowEx( 0, "STATIC", "większa czcionka", WS_CHILD | WS_VISIBLE,
    rcl.right/2.6, rcl.bottom/2, 400, 100, hwnd, NULL, hInstance, NULL ); //w tym polu tekstowym czcionkę chcę zmienić
    
    SendMessage(hwnd, WM_SETFONT, (WPARAM)hFont, false);

//...

Ale nic się nie dzieję...

0

Mój sposób działa tylko ty nie potrafisz go użyć. W sendmessage powinieneś podać uchwyt do editboxa a nie do rodzica.

0

Działa!
Dziękuję wszystkim za pomoc!

0

A jeszcze się dopytam - jak zmienić kolor tekstu?

1

Zależy od kontrolki np. dla STATIC trzeba obsłużyć WM_CTLCOLORSTATIC http://msdn.microsoft.com/en-us/library/windows/desktop/bb787524%28v=vs.85%29.aspx

1 użytkowników online, w tym zalogowanych: 0, gości: 1