Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++ Kysymyksiä

Sivun loppuun

Jarkko [16.02.2003 15:38:49]

#

Saako tekstin paikan määrättyä jollain käskyllä?
Saako kääntäessä tulevan ikkunan väriä ja kokoa muutettua?
Mikä käsky vastaisi QBasicin INKEY$:tä?

thefox [16.02.2003 18:36:24]

#

Näissä kysymyksissä pitäisi aina mainita missä ympäristössä, millä kääntäjällä jne, ohjelmaa käännetään. Yritetään nyt kuitenkin.

lainaus:

Saako tekstin paikan määrättyä jollain käskyllä?

gotoxy(4, 5); // conio.h

lainaus:

Saako kääntäessä tulevan ikkunan väriä ja kokoa muutettua?

Öh? Voisitko kenties selventää.

lainaus:

Mikä käsky vastaisi QBasicin INKEY$:tä?

Suoraa vastinetta ei (melko luonnollista) löydy. Jos kunnon näppishandleria haikailet (kuten veikkaan) niin sellaisen toteutus on melkolailla ympäristökohtaista.

Jarkko [16.02.2003 18:46:14]

#

lainaus:

lainaus:

Saako kääntäessä tulevan ikkunan väriä ja kokoa muutettua?

Öh? Voisitko kenties selventää.

Tarkotan ku tol VC++ tulee vaa semmone pien musta ikkuna ni oisko sen kokoon ja väriin mahdollista vaikutaa sillei et siit tulee esim. koko ruudun kokonen sininen ikkuna.
Ja kääntäjä on Visual C++.

thefox [16.02.2003 18:56:52]

#

Teet varmaankin konsoli-moodi ohjelmia Wintoosalle? Se ikkuna jonka Wintoosa sinulle antaa, on aivan tavallinen konsoli-ikkuna. Sen varmaan jollain vivulla saa kokoruutuun, mutta sen kokoa ei tietääkseni ole mahdollista muuttaa. Värin voinee vaihtaa hieman conio:n käskyillä leikkimällä, tai fillaamalla sen suoraan API:lla. Jottet pääsisi liian helpolla, annan sinulle seuraavan koodinpätkän (clrscr-funktion toteutus Mingw:stä):

void
clrscr ()
{
    DWORD written;

    FillConsoleOutputAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
      __FOREGROUND + (__BACKGROUND << 4), 2000, (COORD) {0, 0},
      &written);
      FillConsoleOutputCharacter (GetStdHandle
      (STD_OUTPUT_HANDLE), ' ',
      2000, (COORD) {0, 0}, &written);
    gotoxy (1, 1);
}

Tuota muokkaamalla voinet viritellä jonkinlaisen "clrscrcolor"-funktion.
Mitä tulee tuohon näppiskysymykseen niin voit käyttää vaikkapa GetAsyncKeyState -funktiota, tai vahtia messageja.

Antti Laaksonen [16.02.2003 19:51:24]

#

Ehkä sinun kannattaisi luopua konsolin käyttämisestä, jos haluat jotain monimutkaisempaa tehdä. Konsoli on tarkoitettu lähinnä tekstin tulostamiseen ja syöttämiseen.

Tee ohjelmaasi kunnon ikkuna, jonka kokoa voit helposti muuttaa ja johon voit piirtää mitä vain. Visual C++ sisältää muistaakseni valmiin ikkunan luovan pohjan - siitä on hyvä lähteä.

zacura [18.02.2003 08:16:10]

#

lainaus:

Teet varmaankin konsoli-moodi ohjelmia Wintoosalle? Se ikkuna jonka Wintoosa sinulle antaa, on aivan tavallinen konsoli-ikkuna. Sen varmaan jollain vivulla saa kokoruutuun, mutta sen kokoa ei tietääkseni ole mahdollista muuttaa.

Kyllä konsoliikkunan kokoa voi muuttaa esim. textmode() komennolla, en tosin tiedä millaiset parametri sille pitää antaa mutta kokeilin jotain ja sain pienen ikkunan. Koon muutos onnistuu suoraan komentoriviltä mode käskyllä
mode sarakkeet,rivit oletus on 80,25

thefox [18.02.2003 11:20:25]

#

lainaus:

Kyllä konsoliikkunan kokoa voi muuttaa esim. textmode() komennolla, en tosin tiedä millaiset parametri sille pitää antaa mutta kokeilin jotain ja sain pienen ikkunan. Koon muutos onnistuu suoraan komentoriviltä mode käskyllä
mode sarakkeet,rivit oletus on 80,25

Juu kyllähän saa aikaan ainakin 80x25 ja 80x50-merkin tilat. Mutta vapaasti ei onnistune, ei ainakaan standardisti ja järin helposti :)

jcd3nton [06.06.2004 17:14:14]

#

Miksi gotoxy(X, Y); ei toimi minulla ? :S käytössä VC++6...
Saisko jostain ladattuu conio.h:n joka sisältää gotoxy:n...? Mulla on eri versio.

tomaattigeeni [07.06.2004 00:49:02]

#

lainaus:

Miksi gotoxy(X, Y); ei toimi minulla ? :S käytössä VC++6...
Saisko jostain ladattuu conio.h:n joka sisältää gotoxy:n...? Mulla on eri versio.

Unohda se conio, jos VC++:aa käytät. Se on DOS:n aikainen kirjasto. Unohda myös konsoli. Jos välttämättä haluat tehdä nostalgista, ADOM -tyylistä softaa, (= tekstipohjaista) niin käytä edes siihen sopivaa kääntäjää. ;)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta