Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Winapi] Wygaszacz ekranu - problem z funkcją textOut

Ostatnio zmodyfikowano 2014-06-18 10:21
Autor Wiadomość
Hipochondryk
Temat założony przez niniejszego użytkownika
[Winapi] Wygaszacz ekranu - problem z funkcją textOut
» 2014-06-18 10:15:43
Witam, piszę wygaszacz ekranu potrzebuję zrobić by wyświetlić tekst w pierwszej lini w kolorze czerwonym a w drugiej w zielonym, bo wyświetleniu wygaszacza oba napisy są zielone. Jak Zmodyfikować tekst by teksty były różno kolorowe ?


C/C++
PAINTSTRUCT ps;
HDC kon;

LRESULT CALLBACK ScreenSaverProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )

{
   
   
   
    HFONT hFont;
    hFont = CreateFont( text1.getsize(), 0, 0, 10, 0, 0, 0, 0, EASTEUROPE_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
    PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, 0 );
   
    SetTextColor( kon, RGB( 255, 0, 0 ) );
    SetBkColor( kon, RGB( 0, 0, 0 ) );
    SelectObject( kon, hFont );
    kon = BeginPaint( hwnd, & ps );
    TextOut( kon, 25, 25, "asde", 4 );
    SetTextColor( kon, RGB( 0, 255, 0 ) );
    SetBkColor( kon, RGB( 0, 0, 0 ) );
    TextOut( kon, 25, 125, "asdfe", 5 );
    EndPaint( hwnd, & ps );
   
   
   
   
   
    return DefScreenSaverProc( hwnd, message, wParam, lParam );
}


Dziękuję  za pomoc i pozdrawiam.
P-112219
Monika90
» 2014-06-18 10:20:24
C/C++
SetTextColor( kon, RGB( 255, 0, 0 ) );
SetBkColor( kon, RGB( 0, 0, 0 ) );
SelectObject( kon, hFont );
te instrukcje przenieś po BeginPaint. Poza tym, mam nadzieję że wiesz, że BeginPaint należy wywoływać tylko w obsłudze komunikatu WM_PAINT, oraz że jak tworzysz font, to musisz go też niszczyć.
P-112220
Hipochondryk
Temat założony przez niniejszego użytkownika
» 2014-06-18 10:21:34
ok działa, dzięki wielkie :)
P-112221
« 1 »
  Strona 1 z 1