Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

LuckyELF

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
// Рисует окошко в текстовом режиме  
void ShowWin (byte xPos, byte yPos, byte xSize, byte ySize, byte Bolder,  
                  byte Shadow, byte Color, byte Paper, const char *Title)  
{  
    // Расчет недостоющих координат  
    int y, x, yEnd = yPos + ySize, xEnd = xPos + xSize;  
 
    // Установка цвета символов и фона  
    textcolor (Color);  
    textbackground (Paper);  
 
    // Рисуем квадратик  
    for (y = yPos; y <= yEnd; y++)  
        for (x = xPos; x <= xEnd; x++)  
        {  
            gotoxy (x, y);  
            cprintf (" ");  
        }  
 
    // Проводим вертикальные линии  
    for (y = yPos; y <= yEnd; y++)  
    {  
        gotoxy (xPos, y);    cprintf ("%c", LineV [Bolder]);  
        gotoxy (xEnd, y);    cprintf ("%c", LineV [Bolder]);  
    }  
 
    // Проводим горизонтальные линии  
    for (x = xPos; x <= xEnd; x++)  
    {  
        gotoxy (x, yPos);    cprintf ("%c", LineG [Bolder]);  
        gotoxy (x, yEnd); cprintf ("%c", LineG [Bolder]);  
    }  
 
    // Рисуем уголки окошка  
    gotoxy (xPos, yPos); cprintf ("%c", LeftUp [Bolder]);  
    gotoxy (xPos, yEnd); cprintf ("%c", LeftDown [Bolder]);  
    gotoxy (xEnd, yPos); cprintf ("%c", RightUp [Bolder]);  
    gotoxy (xEnd, yEnd); cprintf ("%c", RightDown [Bolder]);  
 
    // Если есть надпись,  то выведем ее в верху окошка  
    if (Title)  
    {  
        // Расчитаем середину окна  
        int midx = xPos + (xSize / 2) - (strlen (Title) / 2) + xSize % 2;  
        gotoxy (midx, yPos); cprintf ("%s", Title);  
    }  
 
    // Если окошко должно быть с тень, то нарисуем ее  
    if (Shadow)  
    {  
        int i;  
        word buf_size = xSize * 2 + 1;  
        byte *pbuf;  
        byte *buf = new byte [buf_size];  
        gettext (xPos + 2, yEnd + 1, xEnd + 2, yEnd + 1, buf);  
        for (pbuf=&buf[1], i=0; i<buf_size; *pbuf=1+2+4, i+=2, pbuf+=2);  
        puttext (xPos + 2, yEnd + 1, xEnd + 2, yEnd + 1, buf);  
        delete [] buf;  
 
        buf_size = ySize * 2 * 2 + 1;  
        buf = new byte [buf_size];  
        gettext (xEnd + 1, yPos + 1, xEnd + 2, yEnd, buf);  
        for (pbuf=&buf[1], i=0; i<buf_size; *pbuf=1+2+4, i+=2, pbuf+=2);  
        puttext (xEnd + 1, yPos + 1, xEnd + 2, yEnd, buf);  
        delete [] buf;  
    }  
}  

Всего записей: 29 | Зарегистр. 06-03-2005 | Отправлено: 10:34 24-05-2008
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru