WinAPI, kolor tekstu w TextOut

0

Joł!! MAm taki problem. Ostatnio zainteresowały mnie bardzo aplikacje WinAPI. Piszę se piszę i zachciało mi się zrobić link na formie. Zrobiłem mechanizm wyszukiwania, czy myszka znajduje się w polu tego "hiperłącza", ale nie wiem, jak zmienić kolor tekstu do namalowania :( (coś jak Canvas.Font.Color (tylko że tu bez Canvas'ów)). Szukałem w kodach, ale nic nie znalazłem. Korzystam z funkcji Windows.TextOut. A więc, jak zmienić kolor takiego rysowanego tekstu?? Pozdrawiam, KiteK.

0

Skorzystaj z funkcji(za nim wykonasz TextOut) SetTextColor. Pierwszy parametr funkcji to uchwyt kontekstu (hDC), drugi to kolor czcionki, jako COLORREF, np:

SetTextColor(HandleDC,RGB(0,128,128));

0

Cześć! Dzięki Ci!! :) Mam jeszcze jeden problemik, jak z WndPRoc (funkcji okienkowej), komunikatu WM_MOUSEMOVE wywołać komunikat WM_PAINT?? Patrzałem w Helpie, a tam jest napisane, że WPARAM, (pierwszy parametr) musi być uchwytem (HDC). Próbowałem tak wywoływać WM_PAINT:

SendMessage(Form, WM_PAINT, BeginPaint(Form, PS), 0);
EndPaint(Form, PS);

I innymi sposobami podstawiając różne dane. Nic nie idzie, a forma musi zostać przerysowana. Macie jakieś pomysły?? :P. Pozdrawiam, KiteK

PS. Wie ktoś, dlaczego WM_PAINT nie chce działać?? :P

0

Wykorzystaj funkcie InvalidateRect, która sama uruchamia odmalowanie WM_PAINT, pierwszy parametr funkcji to uchwyt okna, druga to region jaki chcesz odmalować w postaci TRect(Jeżeli wpiszesz tu nil to odmaluje całe okno), zaś trzeci p. to tym boolwski, pytający się czy się czy przed malowaniem ma usunąć starą zawartość. Przykład odmalowania całego okna:
InvalidateRect(Uchwyt,nil,false);

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