Ĺadny brzuch
Mam problem, zawsze kiedy pisze program(WinApi) z TextOut() lub z kontrolką Edit, nie wiem jak zmienić czcionke, bo domyślnie jest brzydka :P. Oto kod:
label1 = CreateWindow ("Edit", "Log:", WS_BORDER | WS_CHILD | WS_VISIBLE | ES_READONLY, 1, 5, 410, 18, botwindow, NULL, hThisInstance, NULL);
SendMessage(label1, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), (LPARAM)true);
tylko teraz słuchaj - to że Ci teraz dałem kod to ostatni raz, nie dalej jak pół roku temu sam zastanawiałem się jak to zrobić, i co wtedy zrobiłem ? poszukałem na takiej magicznej stronie - msdn2.microsoft.com w sekcji library ! bo znalezienie tego to nie jest niewiadomo co ! dlatego następnym razem, najpierw tam szukaj !
// ps nie jestem pewien w 100% czy to działa do edita, ale to już musisz sobie sam sprawdzić i poszukać jeśli nie
Użytkownik Edas edytował ten post 19 lipiec 2007, 11:23
Najpierw deklarujesz uchwyt do font'a.
HFONT hFont;
Następnie tworzysz czcionkę za pomocą CreateFont(); i przypisujesz zwrócony uchwyt do hFont.
hFont=CreateFont(12,0,0,0,0,0,0,0,0,0,0,0,0,"Arial");
Nie będę tłumaczył wszystkich argumentów, znajdziesz je w help'ie.
Następnie przypisujesz ją do kontekstu urządzenia, za pomocą którego rysujesz (handle for device context (HDC))
SelectObject(hDC, hFont);
Wtedy wyświetlasz wszystkie teksty jakie potrzebujesz.
Na koniec trzeba zwolnić pamięć w systemie poprzez usunięcie obiektu czcionki.
DeleteObject(hFont);
Oczywiście stworzyć czcionkę jest nalepiej podczas komunikatu WM_CREATE, a zniszczyć ją podczas komunikatu WM_DESTROY. W dobierasz ją do kontekstu w momencie, gdy chcesz coś namalować/napisać (najczęściej podczas komunikatu WM_PAINT).
Temat jest banalnie prosty i bez problemu znalazł byś w :google:
Przeglądając resztę twoich postów widzę, że non-stop zadajesz takie pytania... Nie pisz ich tutaj tylko :google: .
A jeśli nie możesz znaleźć albo nie znasz angielskiego to tutaj www.winapi.org
Pozdrawiam,
Sebastian!
Zadaje takie pytania już w ostateczności, na msdn są tylko opisy funkcji oraz ich argumentów. Ale co mam zrobić jeśli nie wiem jaką funkcje zastosowac :blink: . I dzięki za odpowiedź, następnym razem będę szukać dokładniej.
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
label1 = CreateWindow ("Edit", "Log:", WS_BORDER | WS_CHILD | WS_VISIBLE | ES_READONLY, 1, 5, 410, 18, botwindow, NULL, hThisInstance, NULL);
SendMessage(label1, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), (LPARAM)true);
tylko teraz słuchaj - to że Ci teraz dałem kod to ostatni raz, nie dalej jak pół roku temu sam zastanawiałem się jak to zrobić, i co wtedy zrobiłem ? poszukałem na takiej magicznej stronie - msdn2.microsoft.com w sekcji library ! bo znalezienie tego to nie jest niewiadomo co ! dlatego następnym razem, najpierw tam szukaj !
// ps nie jestem pewien w 100% czy to działa do edita, ale to już musisz sobie sam sprawdzić i poszukać jeśli nie
Użytkownik Edas edytował ten post 19 lipiec 2007, 11:23
Najpierw deklarujesz uchwyt do font'a.
HFONT hFont;
Następnie tworzysz czcionkę za pomocą CreateFont(); i przypisujesz zwrócony uchwyt do hFont.
hFont=CreateFont(12,0,0,0,0,0,0,0,0,0,0,0,0,"Arial");
Nie będę tłumaczył wszystkich argumentów, znajdziesz je w help'ie.
Następnie przypisujesz ją do kontekstu urządzenia, za pomocą którego rysujesz (handle for device context (HDC))
SelectObject(hDC, hFont);
Wtedy wyświetlasz wszystkie teksty jakie potrzebujesz.
Na koniec trzeba zwolnić pamięć w systemie poprzez usunięcie obiektu czcionki.
DeleteObject(hFont);
Oczywiście stworzyć czcionkę jest nalepiej podczas komunikatu WM_CREATE, a zniszczyć ją podczas komunikatu WM_DESTROY. W dobierasz ją do kontekstu w momencie, gdy chcesz coś namalować/napisać (najczęściej podczas komunikatu WM_PAINT).
Temat jest banalnie prosty i bez problemu znalazł byś w :google:
Przeglądając resztę twoich postów widzę, że non-stop zadajesz takie pytania... Nie pisz ich tutaj tylko :google: .
A jeśli nie możesz znaleźć albo nie znasz angielskiego to tutaj www.winapi.org
Pozdrawiam,
Sebastian!
Zadaje takie pytania już w ostateczności, na msdn są tylko opisy funkcji oraz ich argumentów. Ale co mam zrobić jeśli nie wiem jaką funkcje zastosowac :blink: . I dzięki za odpowiedź, następnym razem będę szukać dokładniej.