j.w.
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);
Na tej stronie jest odpowiedź na Twoje pytanie: http://stackoverflow.com/questions/17347324/how-to-change-text-size-in-basic-text-window-win32-c
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);
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'
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ę...
Mój sposób działa tylko ty nie potrafisz go użyć. W sendmessage powinieneś podać uchwyt do editboxa a nie do rodzica.
Działa!
Dziękuję wszystkim za pomoc!
A jeszcze się dopytam - jak zmienić kolor tekstu?
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