SetConsoleTextAttribute глючит под win98

Тема в разделе "WASM.WIN32", создана пользователем leniviy, 1 апр 2009.

  1. leniviy

    leniviy New Member

    Публикаций:
    0
    Регистрация:
    1 апр 2009
    Сообщения:
    11
    случайно заметил непонятности с цветами, когда тестировал свою прогу под Win98 SE.
    [​IMG]

    Если записать цветной символ в левый нижний угол консоли, то последующий вывод становится местами того же цвета. Кто-нибудь сталкивался?
    Я использую win98 se eng под VMWare
    Код (Text):
    1. #include <conio.h>
    2.  
    3. #include <windows.h>
    4.  
    5. int main()
    6. {
    7.     DWORD nb;
    8.     HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
    9.     char CRs24[25] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
    10.     char A80[81] = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaa";
    11.     char colorsetmsg[] = "SetConsoleTextAttribute green.\n";
    12.     char colorresetmsg[] = " color reset";
    13.     char greenmsg[] = "GREEN";
    14.     WriteConsole(hCon, CRs24, sizeof(CRs24)-1, &nb, NULL);
    15.     WriteConsole(hCon, colorsetmsg, sizeof(colorsetmsg)-1, &nb, NULL);
    16.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_GREEN);
    17.     WriteConsole(hCon, greenmsg, sizeof(greenmsg)-1, &nb, NULL);
    18.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
    19.     WriteConsole(hCon, colorresetmsg, sizeof(colorresetmsg)-1, &nb, NULL);
    20.     WriteConsole(hCon, "\n", 1, &nb, NULL);
    21.     for(int i = 0; i<10; i++) {
    22.         WriteConsole(hCon, A80, sizeof(A80)-1, &nb, NULL);
    23.     }
    24.  
    25.     getch();
    26.     return 0;
    27. }