Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

screen background & highlight (in c)

[es] :: C/C++ programiranje :: screen background & highlight (in c)

[ Pregleda: 2162 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

eXPerience
[ coded ]

Član broj: 14396
Poruke: 88
*.27.eunet.yu.

Sajt: [ coded ]


Profil

icon screen background & highlight (in c)25.09.2005. u 02:37 - pre 226 meseci
Postoji li neki drugi i brzi nacin (pored ovog dole) da se kompletan ekran ili deo "oboji" u neku boju ?

A drugo pitanje: moze li se kako napisati highlight funkcija, ali koja ne radi pomocu poznatog niza stringova, i bez koriscenja graphics header-a i REGS varijanti (da bi sve to moglo da se kompajlira pod windows-om i sa Borland C++ 5.02) ?
Na netu sam nasao ovo, ali compile mi ne uspeva:

Code:
#define offset c*2

void highlight (int start_c, int end_c, int row)
{
    char *ptr;
    int c, adress, r=row;
    ptr=(char *)0xb8000000;
    for (c=start_c; c<end_c; c++)
    {
        adress=r*160+offset;
        *(ptr+adress+1)=0x07;     // accessing attributes of charecters
    }                                 // and reversing them.
}

Dame biraju uvek pogresne tipove ... Na srecu ...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: screen background & highlight (in c)25.09.2005. u 07:30 - pre 226 meseci
Ovde mi nesto nije jasno:

Bojenje ekrana (Desktop-a) + Windows program

...takve stvari su mozda bile aktuelne za DOS programe, ali kada se radi o
Windows-ima, 'nekulturno' je dirati sve sto nije 'tvoje', tj izlaziti van svog glavnog
prozora.

Takodje, cak i kada bi obojio Desktop, to bi bilo validno sve do prvog Refresha
bilo kog od dotanutih prozora (ili Win+D za sve), jer Windows tako funkcionise.

Doduse tako nesto je moguce, ali je krajnje atipicno. Kod Borland C++ Builder-a,
da pristupis Desktop povrsini mozes otprilike ovako:

Code:

// Ovde, u konstruktoru, sa GetDC(0), pridruzujes Desktop Canvas-u
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
   tcScreen = new TCanvas;
   tcScreen->Handle = GetDC(0);
   randomize();
}

// Ovde, prethodno treba dodati TTimer komponentu i podesiti interval na 1 sec, npr
// i dodati na primer ovaj kod u OnTimer() dogadjaj. Crta pravougaonike raznih
// boja i vrsta linija. Slicno je i za Highlighting... postoji poseban MOD za to

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  x = random(Screen->Width - 10);
  y = random(Screen->Height - 10);
  tcScreen->Pen->Color = (Graphics::TColor) random(65535);
  switch (random(5))
  {
    case 0: tcScreen->Pen->Style = psSolid; break;

    case 1: tcScreen->Pen->Style = psDash; break;
    case 2: tcScreen->Pen->Style = psDot; break;
    case 3: tcScreen->Pen->Style = psDashDot; break;
    case 4: tcScreen->Pen->Style = psDashDotDot; break;
  }
  tcScreen->Rectangle(x, y, x + random(400), y + random(400));

}


 
Odgovor na temu

eXPerience
[ coded ]

Član broj: 14396
Poruke: 88
*.226.EUnet.yu.

Sajt: [ coded ]


Profil

icon Re: screen background & highlight (in c)25.09.2005. u 15:29 - pre 226 meseci
Nisi ti mene shvatio, a u stvari nisam ni ja lepo napisao a i zaboravio sam da naverem primer ... Kako promeniti boju pozadine u dos prompt prozoru ili samo jednom njegovom delu (sem na sledeci nacin) ?

Code:
void fill_scr (int x1, int x2, int y1, int y2, int colr) {
   int i, j;
   textbackground(colr); textcolor(colr);
    for (i=x1; i<=x2; i++)
       for (j=y1; j<=y2; j++) {
          gotoxy(i,j); cprintf (" ");
      }
}

Dame biraju uvek pogresne tipove ... Na srecu ...
 
Odgovor na temu

[es] :: C/C++ programiranje :: screen background & highlight (in c)

[ Pregleda: 2162 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.