Gå til innhold

Vidare programmering i C++ (Stikkord: GUI)


Anbefalte innlegg

Hallo

 

Eg har no kome så langt i C++ at eg kan lage grunleggjande DOS-programmer. Det vil seie slike som:

Velkommen til ditt & datt

 

Trykk 1 for ditt

Trykk 2 for datt

Men eg vil vidare. Eg vil liksom ha betre brukargrensesnitt i programma mine. Eg vil ha inn musa!!

 

Men først. Eg har jo ikkje i det heile tatt kontroll på informasjonen som eg sender ut. Det vil seie. Korleis kan eg lage eit script som viser eit klokkeslett. Kvart sekund skal klokka oppdatere seg. Her er det einaste eg kan gjere slik:

Klokka er 16:46:03

Klokka er 16:46:04

Klokka er 16:46:05

Klokka er 16:46:06

Klokka er 16:46:07

Klokka er 16:46:08

Klokka er 16:46:09

Men eg vil oppdatere klokka, ikkje skrive ut ei ny.

 

Etterpå lurar eg på ein god del til angåande dette som eg vil poste i denne tråden (slik at det bare blir ein tråd å oversjå for de som hater nybegynnarspørsmål), men eg trur eg tek bete for bete...

Lenke til kommentar
Videoannonse
Annonse

Antar det er windows du snakker om..

For å oppdatere klokka må du flytte caret tilbake til starten av linja før du skriver ut på nytt. Da kan du bruke funksjonen SetConsoleCursorPosition (søk på msdn for mer info).

 

For å lage GUIer, prøv å google etter Windows Api Tutorial eller noe lignende.

Lenke til kommentar

Eg har eigentleg ikkje tenkt så mykje på skikkeleg nymotens windowsprogrammering. Er liksom ikkje klar for det... :p Eg vil heller begynne med programmer liknande dei gode gamle dos-programma til Win 3.11 (og eldre) som qbasic, edit, osv. Dei er jo bare bygde opp av ASCII-alfabetet...

 

Skal sjå på den...

Lenke til kommentar

Eg er redd at eg ikkje forstod så mykje av den... Diverre. Det er vel ikkje nokon som kan gi eit eksempel på korleis dei kan printe "Hallo!" og eit sekund etter bytte det ut med "Hadet!"? Ikkje meir avangsert, då forstår eg det bare ikkje...

 

Og ein ting til. Korleis kan me tvinge programmet til å køyre i full skjerm?

Endret av knuto
Lenke til kommentar

De er vel snart leie alle spørsmåla mine, men eg vil slenge inn endå eit:

 

Korleis kan ein lage farge på tekst? Går det ann med cout?

 

Fant ut at det kan gjerast med system("COLOR ##"); Dette er vel den beste måten òg?

Endret av knuto
Lenke til kommentar

Som sagt forstår eg ikkje mykje av alt dette rotet... Eg vil bare skrive litt tekst, og er ikkje interresert i å kode ørten hundre linjer med tung kode bare for det. Det vil vel køyre seing òg...

 

Gidder nokon å gi eit eksempel, ikkje bare linke til MDSN. Eg har lest meg sjuk på MDSN, men forstår fortsatt ganske lite...

 

PS: Dersom eg maser: Ikkje klag, men oversjå denne tråden.

Lenke til kommentar

Du må lære deg å lese dokumentasjonen, men her har du et lite eksempel:

#include <iostream>
#include <windows.h>

int main()
{
   HANDLE out = (HANDLE) GetStdHandle(STD_OUTPUT_HANDLE);
   CONSOLE_SCREEN_BUFFER_INFO oldInfo;

   while(1)
   {
       // retrieve handle to standard output device
       if(INVALID_HANDLE_VALUE == out)
       {
           std::err << "error: failed to retrieve handle for the standard output device" << std::endl;
           break;
       }

       // store current state of standard output device
       if(!GetConsoleScreenBufferInfo(out, &oldInfo))
       {
           std::cerr << "error: failed to retrieve information about standard output device" << std::endl;
           break;
       }

       // set foreground color to red & print text
       SetConsoleTextAttribute(out, FOREGROUND_RED | FOREGROUND_INTENSITY);
       std::cout << "I'm red" << std::endl;

       // wait for one second
       Sleep(1000);

       // move cursor back to start position
       SetConsoleCursorPosition(out, oldInfo.dwCursorPosition);

       // set foreground color to blue & print text
       SetConsoleTextAttribute(out, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
       std::cout << "I'm blue" << std::endl;

       // restore foreground color
       SetConsoleTextAttribute(out, oldInfo.wAttributes);

       break;
   }
}

 

Sjekk ut følgende tråd for info om konsoll i fullskjerm: http://forum.hardware.no/index.php?showtopic=324763

Endret av kjetil7
Lenke til kommentar

Tusen takk. Etter å ha lese nøye og tenkt(!) gjennom ein kode eg fant på MDSN fant eg ut korleis eg kunne benytte mange av consol-funksjonane. Ganske tungvindt må eig seie, men det fungerar fett, og det er jo det viktigaste...

 

Fant òg ut korleis eg kunne endre vindaugestørrelsen til fullscreen.

 

Neste: Kva må eg søke etter (!) for å få til ein tekst som er klikkbar. Liksom slik at "Trykk her". Når personen trykkar skal det f.eks. printast "hei" eller gjerast noko som å printe ut ein heil ny meny. Med andre ord: Korleis lage ein trykkbar knapp som ein kan bruke musa (!) til å trykkje på.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...