Näkymien vierittäminen ja koon muuttaminen

Koko: px
Aloita esitys sivulta:

Download "Näkymien vierittäminen ja koon muuttaminen"

Transkriptio

1 Näkymien vierittäminen ja koon muuttaminen OSA V 415 LUKU LUKU Näkymien vierittäminen ja koon muuttaminen Ikkunan muuttuneen koon selvittäminen ja ohjelman vaste siihen Ikkunan enimmäis- ja vähimmäiskoon asettaminen Näyttöä suuremman tekstin ja kaavioiden piirtäminen ja vierityspalkkien käyttö näkymän eri osien katsomiseen.

2 416 Kehittyneet dokumentti/näkymä-tekniikat Näkymien vierittäminen ja koon muuttaminen Ikkunoiden koon muuttaminen on eräs yleisimmistä Windowskäyttöympäristössä tehtävistä toimista. Tämä joustavuus otetaan usein itsestäänselvyytenä ajattelematta ikkunassa olevalle sovellukselle kohdistuneita seurauksia. Sovelluksen tai sovelluksen ohjelmoijan kannalta ikkunan koon muuttuminen saattaa olla suurikin tehtävä. Mahdollisesti kontrollien paikkoja joudutaan muuttamaan ja skaalaamaan, vierityspalkit saatetaan lisätä tai poistaa ikkunasta ja esitettävä teksti tai kaaviot joudutaan muotoilemaan uudelleen. MFC-luokista on tässäkin apua, mutta silti joudumme itse päättämään, miten sovelluksemme halutaan käyttäytyvän ikkunan koon muuttuessa. Ikkunan tilan ja nykyisen paikan selvittäminen Saat aina selville ikkunan tila- ja paikkatiedot ikkunaan liittyvän CWnd-olion GetWindowPlacement()- funktiolla. Tämä funktio täyttää WINDOWPLACEMENTtietorakenteen (joka syötetään ensimmäisessä parametrissä osoittimena) ikkunan paikkatiedoin sekä antaa tilatiedon siitä, onko ikkuna pienennetty, suurennettu, esillä vai piilotettu. Vastaavalla SetWindowPlacement()-funktiolla voidaan ikkunan tilaa muuttaa ohjelmasta käsin. Ikkunan koon muuttumisen käsitteleminen Kun tartut kiinni ikkunan reunasta ja muutat sen kokoa, tapahtuu useita asioita. Ensiksi, tartuttaessa ikkunaan se lukitaan eli siihen ei voi enää piirtää. Kun koko muuttuu, ikkuna saa useita koon muuttumissanomia (WM_SIZING). Kun haluttu koko on saavutettu ja hiiren vasen painike vapautetaan, sovellus saa vielä lopullisen WM_SIZE-sanoman, joka kertoo, että ikkuna tulee muuttaa halutun kokoiseksi. Voit perehtyä ikkunan koon muuttamiseen FormView-tyyppisellä SDIsovelluksella. FormView näyttää näkymässä valintaikkunapohjan, jonka kautta näkymäikkunaan voidaan lisätä kontrolleja aivan valintaikkunan tapaan. Saat tehtyä AppWizardilla FormView-pohjaisen sovelluksen seuraavien vaiheiden mukaisesti. FormView-pohjaisen SDI-sovelluksen luominen 1. Valitse File-valikosta New. 2. Valitse Projects-välilehti ja projektityyppien luettelosta MFC AppWizard (exe). 3. Napauta nyt Project Name ruutua ja anna nimeksi SizeForm. 4. Napauta OK. MFC AppWizard Step1 ikkunan pitäisi tulla esiin.

3 Näkymien vierittäminen ja koon muuttaminen 5. Valitse tässä ikkunassa Single Document ja napauta Nextpainiketta, kunnes päädyt viimeiseen vaiheeseen (Step 6, ikkunassa ruutulipun kuva). 6. Napauta AppWizardin luotavien luokkien luettelosta CSizeFormView-luokkaa. 7. Nyt Base Classes yhdistelmäruudun pitäisi olla käytössä. Avaa ruudun luettelo nuolesta ja näet käytettävissä olevat kantaluokat. 8. Valitse näistä CFormView kuvan 18.1 tapaan. 9. Napauta Finish. 10. Napauta New Project Information ikkunassa OK ja AppWizard tekee uuden projektin lähdekooditiedostoineen. OSA V LUKU KUVA 18.1 CFormView-kantaluokan valitseminen päänäkymälle AppWizardissa. Koon muutostapahtuman käsitteleminen Voit seurata ja käsitellä Windowsin koon muuttamistapahtuman sanoman (WM_SIZING) näyttääksesi ikkunan muuttuvan koon sen otsikkopalkissa. Ikkuna on lukitu muutoksilta kokoa muutettaessa, joten joudut purkamaan lukituksen ennen kuin saat kirjoitettua

4 418 Kehittyneet dokumentti/näkymä-tekniikat Näkymien vierittäminen ja koon muuttaminen ikkunaan. Tämän jälkeen lukitset ikkunan uudelleen. Seuraavaksi esitetään, kuinka tämä saadaan tehtyä FormView-pohjaisessa SDIsovelluksessa. Lisää siis OnSizing()-käsittelijäfunktio. WM_SIZING-käsittelijän lisääminen EventWizardilla 1. Napauta projektin työtilaikkunassa ClassView-sivulla SizeForm Classes rivillä tekstin vasemmalla puolen olevaa plusmerkkiä nähdäksesi kaikki projektin luokat. 2. Kehysluokka käsittelee koon muuttamissanomat, joten lisäämme käsittelijän siihen. Napauta CMainFrame-luokkaa hiiren oikealla painikkeella ja valitse saamastasi pikavalikosta Add Windows Message Handler. 3. Nyt esillä tulisi olla New Windows Message and Event Handlers for class CMainFrame ikkunan. 4. Vieritä sanomaluetteloa (New Windows Messages and Events), kunnes löydät WM_SIZING-sanoman. 5. Valitse tämä ja napauta Add and Edit painiketta kuvan 18.2 tapaan. KUVA 18.2 Käsittelijän lisääminen WM_SIZING-sanomalle.

5 Näkymien vierittäminen ja koon muuttaminen OSA V LUKU Nyt editorissa pitäisi olla näkyvissä OnSizing()-käsittelijäfunktio. Lisää listauksen 18.1 rivit ja saat ikkunan otsikkopalkkiin ikkunan sen hetkisen koon. LISTAUS 18.1 LST18_1.CPP Ikkunan muuttuvan koon näyttäminen 1 void CMainFrame::OnSizing(UINT fwside, LPRECT prect) 2 { 3 CFrameWnd::OnSizing(fwSide, prect); 4 // TODO: Add your message -handler code here 5 6 // ** Construct a CRect from the structure pointer 7 CRect rcsize(prect); // ** Create a String to hold our message 10 CString sizemsg; // ** Display the Sizing information 13 // ** From the Sizing Rectangle 14 sizemsg.format("sizing: width = %d, height = %d", 15 rcsize.width(),rcsize.height()); // ** Turn off Window Locking 18 UnlockWindowUpdate(); // ** Update the Title Bar Text 21 SetWindowText(sizeMsg); // ** Turn Locking back on 24 LockWindowUpdate(); 25 } 1 RECT-tietorakenne on helpompi käyttää, kun se muutetaan CRect-luokaksi. 2 Ikkunan venytetty koko muotoillaan CString-merkkijonoksi ikkunan otsikkopalkkiin asetettavaksi. 3 Koska Windows lukitsee ikkunan sisällön koon muuttamisen aikana, lukitus joudutaan tilapäisesti poistamaan. Tätä käsittelijää tullaan nyt kutsumaan aina hiiren liikkuessa ikkunan kokoa muutettaessa. Funktio saa parametreinä lipun, joka kertoo, miltä sivulta ikkunaan on tartuttu sekä osoittimen suorakulmioon (prect), jossa ikkunan koordinaatit ovat. Ensiksi joudut muuttamaan tämän RECT-tietorakenteen ystävällisempään CRect-muotoon (rivi 7). Tämän jälkeen voit siirtää ikkunan leveyden ja korkeuden ikkunaan kirjoitettavaan merkkijonoon. Lopuksi ikkunan otsikoksi asetetaan tämä teksti, jossa koordinaatit ovat, SetWindowText()-funktiolla rivillä 21. Huomaa SetWindowText()-funktion ympärillä käytetyt UnlockWindowUpdate()- ja LockWindowUpdate()-funktiot (rivit 18 ja 24). Nämä tarvitaan, koska Windows lukitsee automaattisesti ikkunan estäen siihen piirtämisen kokoa muutettaessa. Tämä on

6 420 SizeForm-esimerkin suorittaminen Microsoft Plus!-ohjelmiston kanssa Jos käytössäsi on Microsoft Plus! -ohjelmisto (tai Windows NT), varmista tätä esimerkkiä suorittaessasi, että Näytä ikkunan sisältö vedettäessä - valinta (Show Window Content While Dragging) ei ole asetettuna. Tämä valinta löytyy Ohjauspaneelin Näyttöasetuksista Plus! tai Tehosteet -välilehdeltä (Control Panel/Display). Jos valinta on sallittu, ikkunan lukitus poistetaan ja näyttö menee sekaisin. Kehittyneet dokumentti/näkymä-tekniikat Näkymien vierittäminen ja koon muuttaminen yleensä vain hyödyksi, ettei ikkunan sisältö sekoittuisi. Koon muuttaminen nimittäin saisi aikaan jatkuvan ikkunan päivitystarpeen, joten siihen piirrettäisiin koko ajan. Käännettyäsi ohjelman näiden muutosten jälkeen ja ajettuasi sen pitäisi ikkunan leveyden (width) ja korkeuden (height) näkyä ikkunan otsikkopalkissa ikkunan kokoa muutettaessa. Lopullisen koon muuttamissanoman käsitteleminen Yleensä tieto siitä, että ikkunan koko parhaillaan muuttuu, ei ole yhtä tarpeellinen kuin tieto koon muuttamisen päättymisestä. Voit toki muuttaa kokoa muutettaessakin (kun WM_SIZING-sanomaa lähetetään) saamasi suorakulmion koordinaatteja, mutta se on harvoin tarpeen. Sen sijaan lopullinen tieto koon muuttamisen päättymisestä on paljon hyödyllisempi. Tämä tarkoittaa, että käyttäjä on päättänyt ikkunan oikean koon ja vapauttanut hiiren vasemman painikkeen. Voit käsitellä tämän sanoman kehysluokassa koon muuttamissanoman tavoin, mutta se välitetään edelleen myös näkymäluokalle, missä sillä on suurempi merkitys. Lisää siis käsittelijäfunktio. Näkymän käsittelijän lisääminen ikkunan koon muuttumiselle 1. Valitse projektin työtilaikkunassa ClassView-sivulla CSizeFormView-luokka. 2. Napauta sitä hiiren oikealla painikkeella ja valitse saamastasi pikavalikosta Add Windows Message Handler. 3. Nyt esillä tulisi olla New Windows Message and Event Handlers ikkuna. 4. Valitse sanomaluettelosta (New Windows Messages and Events) WM_SIZE. 5. Napauta Add and Edit painiketta lisätäksesi käsittelijäfunktion. Voit nyt lisätä listauksen 18.2 muutokset lopullisen leveyden ja korkeuden näyttämiseksi otsikkopalkissa.

7 Näkymien vierittäminen ja koon muuttaminen LISTAUS 18.2 LST18_2.CPP Size-tapahtuman käsittelijän toteutus OSA V LUKU void CSizeFormView::OnSize(UINT ntype, int cx, int cy) 2 { 3 CFormView::OnSize(nType, cx, cy); 4 5 // TODO: Add your message handler code here 6 7 // ** Declare a string object 8 CString strtitle; 9 10 // ** Setup and display the Document Title 11 strtitle.format("final Width = %d, Height = %d", cx,cy); 1 12 GetDocument()->SetTitle(strTitle); 13 } 1 Leveys muotoillaan ja asetetaan dokumentin otsikoksi (joka näkyy ikkunan otsikkopalkissa). Listauksessa 18.2 esitettyä OnSize()-käsittelijää kutsutaan, kun ikkunan kokoa on muutettu. Funktio saa Windowsilta OnSize()- funktion ensimmäisenä parametrinä (ntype) lippuna tiedon siitä, miksi ikkunan kokoa muutettiin. Tämä koodi voi saada taulukossa 18.1 esitettyjä arvoja. TAULUKKO 18.1 Size-tapahtuman liput Lippu SIZE_RESTORED SIZE_MAXIMIZED SIZE_MINIMIZED Kuvaus Ikkunan kokoa muutettiin Ikkuna suurennettiin Ikkuna pienennettiin Kaksi muuta listauksessa 18.2 OnSize()-funktiolle välitettyä parametriä ovat uusi leveys (cx) ja korkeus (cy) kokonaislukuina. Voit muotoilla näytettävän merkkijonon esittämään nämä arvot (rivi 10) ja näyttää merkkijonon ikkunan otsikkopalkissa dokumentin SetTitle()-funktiolla (rivi 12). Käännettyäsi ohjelman näiden muutosten jälkeen ja ajettuasi sen pitäisi ikkunan leveyden (width) ja korkeuden (height) näkyä ikkunan otsikkopalkissa ikkunan kokoa muutettaessa ja lopullisen koon sen muuttamisen jälkeen. Saatat hämmästellä, milloin ja miksi haluaisit tietää ikkunan koon muuttumisesta. Tavallinen tapaus on kontrollien koon muuttaminen lomakenäkymässä (form view). Kuvittele, että olet kirjoittanut yksin-

8 422 Kehittyneet dokumentti/näkymä-tekniikat Näkymien vierittäminen ja koon muuttaminen kertaisen tekstinkäsittelyohjelman, jossa on monirivinen tekstiruutu. Käyttäjän muuttaessa sovellusikkunan kokoa tulisi myös tekstiruudun koon muuttua vastaavasti. Seuraavaksi esitetään ohjeet sellaisen tekstiruudun lisäämiseksi. Vieritysasetusten käyttö Horizontal Scroll ja Vertical Scroll -valinnat lisäävät tekstiruutuun vaaka- ja pystyvierityspalkit. AutoHScroll ja AutoVScroll puolestaan saavat tekstiruudun vierittämään automaattisesti rivin lopussa tai käyttäjän painaessa rivinvaihdon kontrollin lopussa. Ellei AutoHScroll-valintaa ole asetettu, kontrollin teksti rivitetään automaattisesti tekstiruudun seuraavalle riville. Monirivisen vieritettävän tekstikontrollin lisääminen vanhaan FormView-projektiisi 1. Napauta projektin työtilaikkunassa ResourceView-sivua. 2. Napauta projektin Resources-kansion viereistä plusmerkkiä ja saat esiin projektin eri resurssit. 3. Napauta Dialog-kansion viereistä plusmerkkiä avataksesi projektin valintaikkunan. 4. Esillä pitäisi olla projektin mukaan nimetty valintaikkuna (IDD_SIZEFORMFORM). Tämä valintaikkunapohja on FormViewnäkymän perustana. 5. Kaksoisnapauta tätä alkiota ja saat editoriin tyhjän valintaikkunan, jossa on teksti TODO: Place Controls Here. 6. Poista teksti valitsemalla se ja painamalla Delete-painiketta. 7. Ota Controls-työkalupaletista tekstiruutukontrolli (Edit Box), raahaa se tyhjälle valintaikkunapohjalle ja pudota. 8. Muuta tekstiruutu täyttämään valintaikkunan sinisellä pisteviivalla rajattu alue. 9. Avaa kontrollin asetukset (Edit Properties) näppäilemällä Alt+Enter. 10. Napauta Styles-välilehteä ja tarkista, että Multiline, Horizontal Scroll, Auto HScroll, Vertical Scroll, Auto VScroll ja Want return liput on valittu. 11. Valitse General-sivu ja muuta resurssin ID-tunnukseksi IDC_SIZEABLE_EDIT kuvan 18.3 mukaisesti. 12. Sulje Properties-ikkuna Enterillä. Nyt olet lisännyt tekstiruutusi, mutta siihen ei vielä liity ohjelman kontrollimuuttujaa tiedon vaihtamista varten. Seuraava tehtävä onkin tällaisen lisääminen ClassWizardilla.

9 Näkymien vierittäminen ja koon muuttaminen OSA V LUKU KUVA 18.3 Monirivisen tekstiruudun lisääminen Muuttujan liittäminen tekstikontrolliin ClassWizardilla 1. Napauta varovasti tekstikontrollin reunaa. 2. Avaa ClassWizard näppäilemällä Ctrl+W tai valitsemalla Viewvalikosta ClassWizard. 3. Nyt esillä tulisi olla ClassWizard-ikkunan ja siitä Member Variables välilehden valittuna. 4. Valitse sopiva kontrollin ID-tunnus Control IDs luettelosta (tässä IDC_SIZEABLE_EDIT). Napauta Add Variable painiketta ja saat esiin vastaavan ikkunan. 5. Nyt voit lisätä tekstikontrollia edustavan muuttujan. 6. Valitse Category-yhdistelmäruutuun Control tämän pitäisi automaattisesti valita Variable Type ruutuun CEdit. 7. Napauta Member Variable Name tekstiruutua ja syötä uuden muuttujasi nimi (esimerkiksi m_sizeableedit), kuten kuvassa KUVA 18.4 CEdit-muuttujan lisääminen Sizeable Edit tekstiruutua varten. 8. Lisää jäsenmuuttuja näkymäluokkaan (view) napauttamalla OK.

10 424 Kehittyneet dokumentti/näkymä-tekniikat Näkymien vierittäminen ja koon muuttaminen Nyt sinulla on kontrolliin liittyvä jäsenmuuttuja m_sizeableedit. Tämän avulla voit lukea ja kirjoittaa tekstiä ohjelmasta kontrolliin ja päinvastoin. Voit myös lähettää tämän muuttujan kautta koon muuttamissanoman kontrollille. Seuraavaksi joudut käsittelemään WM_SIZE-sanoman, jotta tietäisit, milloin tekstiruudun kokoa tulee muuttaa ja minkä verran. Sinulla on jo käsittelijäfunktio ja löydät sen näppärästi ClassWizardilla seuraavien ohjeiden avulla. Jäsenfunktion hakeminen ClassView-sivulla Toinen tapa tehdä tämä on etsiä OnSize()-funktio projektin työtilaikkunan ClassView-sivulla. Tämä jäsenfunktio löytyy CSizeFormView-kansion alta ja se saadaan avattua editoriin OnSize()-nimeä kaksoisnapauttamalla. Vaihtoehtoisesti funktion nimen päällä hiiren oikeaa painiketta napautettaessa saatavasta pikavalikosta voidaan valita, halutaanko nähdä funktion toteutus (Go to Definition) vai määrittely (Go to Declaration). Jäsen/käsittelijäfunktion hakeminen ClassWizardilla 1. Valitse ClassWizardin Message Maps välilehti ja varmista, että oikea luokka (tässä CSizeFormView) on valittu Class Name ruudussa. 2. Vieritä tarvittaessa Member Functions luetteloa ja etsi sopiva sanoma (kuten ON_WM_SIZE) tai jäsenfunktio (kuten OnSize()). 3. Kaksoisnapauta tätä alkiota ja pääset suoraan muokkaamaan CSizeFormView-luokan jäsenfunktiotasi (kuten OnSize()). Aluksi OnSize()-funktiossa ei ole koodia, joka muuttaisi tekstiruudun kokoa ikkunan koon muuttuessa. Voit kokeilla ohjelman toiminnan kääntämällä ja ajamalla sen. Kun muutat ikkunan kokoa, pysyy tekstiruutu saman kokoisena kuin ennenkin. Voit kirjoittaa tekstiä ruutuun, mutta eikö kunnon tekstinkäsittelyohjelmassa tuon muokkausalueen (siis tekstiruudun) pitäisikin pysyä ikkunan koon mukaisena? Sulje sovellus ja palaa lomakenäkymän (CSizeFormView) OnSize()- funktioon. Lisää listauksen 18.3 rivit OnSize()-käsittelijän loppuun. LISTAUS 18.3 LST18_3.CPP Tekstiruudun koon muuttaminen ikkunan koon muuttuessa 1 void CSizeFormView::OnSize(UINT ntype, int cx, int cy) 2 { 3 CFormView::OnSize(nType, cx, cy); 4 5 // TODO: Add your message handler code here 6 7 CString strtitle; 8 strtitle.format("final Width = %d, Height = %d",cx,cy); 9 GetDocument()->SetTitle(strTitle); // ** Check the Edit Box is 'Alive'

11 Näkymien vierittäminen ja koon muuttaminen OSA V LUKU if (m_sizeableedit.getsafehwnd()) // ** Size to the new window size 15 m_sizeableedit.setwindowpos(this,0,0, 16 cx-40,cy-40, 17 // ** Only Resize 18 SWP_NOMOVE+SWP_NOZORDER+SWP_SHOWWINDOW+ 19 SWP_NOACTIVATE); 1 20 } 1 Tekstiruudun kokoa muutetaan vain hieman ikkunaa kapeammaksi ja matalammaksi. Liput ilmaisevat, että on kyse ainoastaan koon muuttamisesta. Joudut varmistamaan, että tekstiruutu on kunnolla alustettu sen GetSafeHwnd()-jäsenfunktiolla listauksen 18.3 rivillä 12 (muuten et saa tehdä mitään alustamattoman ikkunan kanssa). Rivin 15 SetWindowPos()-funktio on monipuolinen funktio, jolla voit muuttaa ikkunan paikkaa ja kokoa sekä aktivoida tai piilottaa ikkunan. Nyt riittää, että ainoastaan ikkunan kokoa muutetaan, joten voit syöttää sille ikkunan uuden koon cx- ja cy-parametreinä (miinus reunuksen 40 kuvapistettä). SetWindowPos()-funktion viimeinen lippuparametri kertoo, mitä funktion oletetaan tekevän ja mitä parametrejä sen tulee käyttää. Käytettävissä olevat liput on esitetty taulukossa TAULUKKO 18.2 SetWindowPos()-funktion liput Lippu Kuvaus SWP_NOMOVE Älä siirrä ikkunaa; toista ja kolmatta (x ja y) parametriä ei huomioida SWP_NORESIZE Älä muuta ikkunan kokoa; kolmatta ja neljättä (cxja cy) kokoparametriä ei huomioida SWP_NOZORDER Älä sijoita ikkunaa muiden ikkunoiden eteen tai taakse (ei huomioi ensimmäistä pwndinsertafter-parametriä) SWP_NOACTIVATE Älä muuta ikkunaa aktiiviseksi SWP_SHOWWINDOW Näytä ikkuna Käännä ja aja sovellus näiden rivien lisäämisen jälkeen, jolloin saat kuvan 18.5 mukaisen tekstieditorin, jonka ikkunan kokoa voi muuttaa.

12 426 Kehittyneet dokumentti/näkymä-tekniikat Näkymien vierittäminen ja koon muuttaminen KUVA 18.5 Tekstieditori, jonka ikkunan kokoa voi muuttaa. Kokorajojen asettaminen Saatat haluta estää käyttäjää muuttamasta ikkunaa määrättyä kokoa suuremmaksi tai pienemmäksi. Tämä onnistuu käsittelemällä ikkunan WM_GETMINMAXINFO-sanoma kehysluokan (frame) OnGetMinMaxInfo()-käsittelijäfunktiolla. Tämän funktion ja sille välitettyjen parametrien avulla saat asetettua ikkunasi koolle ala- ja ylärajat. Käsittelijäfunktion lisääminen Wizard-palkista Add Windows Message Handler - toiminto voidaan käynnistää myös Wizard-palkin oikean reunan avautuvasta luettelosta. Jos käytät tätä työkaluriviä ClassView-sivun sijaan, varmista, että rivin ensimmäisessä yhdistelmäruudussa on CMainFrame-luokka valittuna, jotta lisättävä käsittelijä tulisi tuon luokan jäseneksi. Käsittelijäfunktion lisääminen ikkunan vähimmäis- ja enimmäiskoon ohjaamiseksi 1. Napauta projektin työtilaikkunan ClassView-sivulla CMainFrame-luokkaa hiiren oikealla painikkeella. Saat esiin pikavalikon. 2. Valitse valikosta Add Windows Message Handler komento. Nyt esiin pitäisi tulla New Windows Message and Event Handlers for class CMainFrame valintaikkunan. 3. Valitse New Windows Messages/Events luettelosta WM_GETMINMAXINFO-sanoma ja napauta Add and Edit painiketta lisätäksesi uuden käsittelijän. Nyt voit lisätä listauksessa 18.4 esitetyt rivit kehysikkunan uuteen OnGetMinMaxInfo()-käsittelijäfunktioon. Nämä rajoittavat ikkunan sallitun vähimmäis- ja enimmäiskoon estäen käyttäjää ylittämästä annettuja raja-arvoja.

13 Näkymien vierittäminen ja koon muuttaminen LISTAUS 18.4 LST18_4.CPP Ikkunan vähimmäis- ja enimmäiskoon asettaminen OnGetMinMaxInfo()-funktiolla 1 void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpmmi) 2 { 3 // TODO: Add your message handler code here 4 5 // ** Set Min Size 6 lpmmi->ptmintracksize = CPoint(200,200); 7 8 // ** Set Max Size 9 lpmmi->ptmaxtracksize = CPoint(500,400); CFrameWnd::OnGetMinMaxInfo(lpMMI); 12 } OSA V LUKU Käännettyäsi ja ajettuasi ohjelman rivien lisäämisen jälkeen kokeile ikkunan koon muuttamista. Huomannet, ettet saa kutistettua ikkunaa 200 x 200 kuvapistettä pienemmäksi etkä 500 x 400 suuremmaksi. Rivillä 6 muutettua MINMAXINFO-tietorakenteen ptmintracksizeja rivillä 9 muutettua ptmaxtracksize-jäsentä muuttamalla voit säätää näitä raja-arvoja. Listauksessa 18.5 on esitetty MINMAXINFO-tietorakenteen määrittely. LISTAUS 18.5 LST18_5.CPP MINMAXINFO-tietorakenne 1 typedef struct tagminmaxinfo { 2 POINT ptreserved; 3 POINT ptmaxsize; 4 POINT ptmaxposition; 5 POINT ptmintracksize; 6 POINT ptmaxtracksize; 7 } MINMAXINFO; Tietorakenne esittää vielä kaksi muuta jäsentä, joiden arvoa voimme muuttaa. Toinen on rivin 3 ptmaxsize, jolla ikkunan enimmäisleveys ja korkeus voidaan säätää ja toinen rivin 4 ptmaxposition, jolla voidaan asettaa suurennetun ikkunan vasemman yläkulman paikka. POINT-tietotyyppi WIN32:n POINT-tietorakenteessa ovat x- ja y-jäsenet, joissa ovat yhden pisteen koordinaatit. Tutumpi CPoint-luokka kapseloi sisäänsä POINT-tietorakenteen ja lisää käyttökelpoisia jäsenfunktioita sekä kuormitettuja operaattoreita. Venytettävien valintaikkunoiden luominen Valintaikkunan muuttaminen sellaiseksi, että sen kokoa voidaan muuttaa, käy varsin helposti. Seuraavassa on annettu ohjeet sovelluksemme About-ikkunan koon muuttamisen mahdollistamiseksi.

14 428 Kehittyneet dokumentti/näkymä-tekniikat Näkymien vierittäminen ja koon muuttaminen About-ikkunan muuttaminen pienennettäväksi ja suurennettavaksi 1. Napauta projektin työtilaikkunassa ResourceView-sivua. 2. Avaa valintaikkunaresurssit napauttamalla projektin (kuten SizeFormin) Resources kansion sekä Dialog-kansion viereistä plusmerkkiä. 3. Kaksoisnapauta IDD_ABOUTBOX-valintaikkunaa ja pääset muokkaamaan sitä. 4. Näppäile Alt+Enter, muuttaaksesi valintaikkunan asetuksia Properties-ikkunassa. 5. Avaa Border Style luettelo ja valitse Resizing. 6. Käännä ja aja sovelluksesi. 7. Napauta sovelluksen Help-valikkoa ja valitse siitä Aboutkomento (kuten About SizeForm). 8. Nyt voit muuttaa valintaikkunan kokoa ikkunan oikeassa alakulmassa olevasta koonmuuttokohdasta. Voit halutessasi käsitellä OnSize()-sanoman aivan samaan tapaan kuin aiemmassa tekstieditoriesimerkissä. Ikkunoiden vierittäminen Aina ei ole mahdollista esittää ikkunan koon vuoksi tiettyä kuvaa tai valintaikkunaa kokonaan. Joskus saatat jopa haluta piirtää näyttöruutua suurempaan ikkunaan ja antaa käyttäjälle mahdollisuuden tutkia koko piirrosta vierittämällä. MFC-kirjastossa on tähän tarkoitukseen sopiva näkymäluokka CScrollView. Olet taatusti käyttänyt jo sovelluksia, joissa vierityspalkkien avulla voidaan tutkia ikkunan näytettävää aluetta. Voit siis tehdä AppWizardilla SDI-sovelluksen, jossa on CScrollView-luokan avulla toteutettu vieritettävä alue. Sovelluksen luomisen vaiheet ovat miltei samat kuin aiemmin esitetyssä CFormView-esimerkissä. Tällä kertaa valitset kuitenkin AppWizardin viimeisessä ruudussa CFormView-luokan tilalle Base Class yhdistelmäruutuun CScrollView. Seuraavat esimerkit esittävät PanSdi-nimisen CScrollViewsovelluksen ominaisuuksia.

15 Näkymien vierittäminen ja koon muuttaminen Vieritettävän alueen koon asettaminen Jos käännät ja ajat AppWizardin tekemän CScrollView-pohjaisen SDIsovelluksen, et huomaa heti mitään eroa tavalliseen CView-näkymällä varustettuun SDI-sovellukseen. Syy tähän on, että vieritettävän näkymän oletuskoko on sovellusrungossa 100 x 100 kuvapistettä. Voit muuttaa tätä oletuskokoa jopa koko näyttöä suuremmaksi muuttamalla oletusarvoja näkymän (view) OnInitialUpdate()-funktiossa. OSA V LUKU Näkymän OnInitialUpdate()-funktion löytäminen vieritysnäkymän koon muuttamista varten 1. Valitse projektin työtilanäkymässä (workspace) ClassView-sivu. 2. Avaa projektisi luokat napauttamalla projektin nimen viereistä plusmerkkiä. 3. Avaa CScrollView-kantaluokasta peritty luokka (kuten CPanSDIView) napauttamalla sen plusmerkkiä. Jäsenfunktioluettelon loppupuolelta pitäisi löytyä OnInitialUpdate()-funktio. 4. Kaksoisnapauta tätä funktiota ja esiin pitäisi tulla sen oletustoteutuskoodi listauksen 18.6 mukaisena. 5. Voit muuttaa vieritysnäkymän oletuskokoja muuttamalla sizetotal.cx ja sizetotal.cy-muuttujien arvoja. OnInitialUpdate()-funktio OnInitialUpdate()-funktio on hyvä paikka suorittaa vain kerran tehtäviä alustuksia, koska funktiota kutsutaan ainoastaan kerran, kun näkymäikkuna alustetaan. Funktio on vastaava kuin valintaikkunan OnInitDialog(). Älä kuitenkaan viittaa sovelluksesi dokumenttiolioon OnInitialUpdate()- funktiossa, koska joskus näkymä alustetaan ennen dokumenttia. Muussa tapauksessa sovelluksesi saattaa kaatua jo käynnistyessään. LISTAUS 18.6 LST18_6.CPP ScrollView-vieritysnäkymän oletustoteutus OnInitialUpdate()-funktiossa 1 void CPanSDIView::OnInitialUpdate() 2 { 3 CScrollView::OnInitialUpdate(); 4 CSize sizetotal; 5 6 // TODO: calculate the total size of this view 7 sizetotal.cx = sizetotal.cy = 100; 8 SetScrollSizes(MM_TEXT, sizetotal); 1 9 } 1 Oletuksena vierityksen kokonaismitaksi asetetaan 100 x 100 pistettä, joka yleensä on liian pieni tosikäyttöön. Listauksessa 18.6 esitettyä OnInitialUpdate()-funktiota kutsutaan vain kerran: juuri ennen näkymän näyttämistä, mutta kuitenkin sen dokumenttiin liittämisen jälkeen. Voit toteuttaa funktiossa näkymän tarvitsemia kertaluonteisia alustuksia. CSize-luokka on alustettu listauksen 18.6 rivillä 7 kokoon 100 x 100. Nämä arvot syötetään sitten SetScrollSizes()-funktiolle, joka

16 430 Kehittyneet dokumentti/näkymä-tekniikat Näkymien vierittäminen ja koon muuttaminen asettaa näkymän koon erityisessä piirtotilassa (joita käsiteltiin luvussa 15). Tästä johtuen näkymän koko on 100 x 100 eli tavallisen ikkunan kokoa pienempi, joten vierityspalkkeja ei välttämättä näytetä. Vierityspalkkeja varten haluat todennäköisesti hyvin suuren näkymän, jopa itse näyttöä suuremman. Voit siis muuttaa näkymän kooksi 2000 x 2000 vaihtamalla listauksen 18.7 tapaan luvun 100 paikalle Tämä suurentaa vieritysnäkymäsi koko näyttöäsikin suuremmaksi (ellei sinulla ole ultrasuperhypertarkkaa näyttöä). LISTAUS 18.7 LST18_7.CPP Näyttöä suuremman näkymän koon asettaminen x 2000 pistettä on näyttöä suurempi alue, joten vieritysnäkymä voi esittää käyttäjälle alueesta ainoastaan osan vierittämällä. 1 void CPanSDIView::OnInitialUpdate() 2 { 3 CScrollView::OnInitialUpdate(); 4 CSize sizetotal; 5 6 // TODO: calculate the total size of this view 7 sizetotal.cx = sizetotal.cy = 2000; // ** New Size 8 SetScrollSizes(MM_TEXT, sizetotal); 1 9 } Voisit piirtää näyttöön jotain todella suurta, jotta saisit vierityksen käyttöön. Listauksessa 18.8 on esitetty ellipsin piirtämistä varten lisättävät rivit. Löydät OnDraw()-funktion koodin kaksoisnapauttamalla ClassView-sivulla OnDraw()-funktiota. LISTAUS 18.8 LST18_9.CPP Näyttöä suuremman kuvion piirtäminen ScrollView-näkymässä 1 Ellipsi piirretään ikkunaa suurempana ja se rajataan ikkunan näkyvään osaan. 1 void CPanSDIView::OnDraw(CDC* pdc) 2 { 3 CPanSDIDoc* pdoc = GetDocument(); 4 ASSERT_VALID(pDoc); 5 6 // TODO: add draw code for native data here 7 8 // ** Select a Gray Brush 9 CBrush* poldbrush = 10 (CBrush*)pDC->SelectStockObject(LTGRAY_BRUSH); // ** Make a CRect 13 CRect rctotal(cpoint(0,0),gettotalsize()); // ** Draw Ellipse 16 pdc->ellipse(rctotal); // ** Reselect the old brush 19 pdc->selectobject(poldbrush); 20 }

17 Näkymien vierittäminen ja koon muuttaminen Huomaa listauksessa 18.8, että vieritysnäkymän funktiolla GetTotalSize() (rivillä 13) haetaan koko vieritettävän alueen koko, joka asetettiin OnInitialUpdate()-funktiossa SetScrollSizes()- funktiolla. Tästä tiedosta saadaan muodostettua CRect, jonka avulla saadaan piirrettyä 2000 x 2000 kuvapisteen kokoinen ellipsi. Rivillä 10 tämä piirretään vaaleanharmaalla siveltimellä (LTGRAY_BRUSH). Kun käännät ja ajat sovelluksen näiden muutosten jälkeen, näet ikkunan, jossa on osa valtavan suuresta ellipsistä (kuva 18.6). Vierityspalkkien avulla saat esiin ellipsin muutkin osat. Voit kokeilla vielä ikkunan koon muuttamista: huomaat vierityspalkkien muuttuvan ja paljastavan, minkä verran ikkunassa vielä on nähtävää. OSA V LUKU KUVA 18.6 Ikkunaa suurempien kappaleiden näyttäminen scroll view näkymässä Sivu- ja rivivierityksen määrän muuttaminen Jos napautat vierityspalkin päässä olevaa nuolta, huomaat, että kuvaa vieritetään vain hieman; kyseessä on rivivieritys. Jos sen sijaan napautat vieritysruudun ja vieritysnuolen välistä aluetta, kuvaa vieritetäänkin kerralla paljon enemmän. Tällöin kyseessä on sivuvieritys. Nimitykset tulevat tekstinkäsittelysovelluksista, mutta toimivat hyvin kaiken näkymässä näytettävän kanssa. Voit muuttaa näitä vierityspalkin osia käytettäessä siirryttävää matkaa lisäämällä parametrejä SetScrollSizes()-funktioon. Ellei rivi- ja sivuvieritysarvoja anneta, niiden oletusarvo valitaan sopivaksi näkymän kokoon nähden. Voit muuttaa näitä molempia arvoja syöttämällä funktiolle CSize-olion, jossa on arvo sekä vaaka- että pystysuuntaiselle vierityspalkille. CSize-oliossa on cx- ja cy-jäsenet. cx-arvo muuttaa Rivin ja sivun vieritysarvot Tavallisesti rivi- ja sivuvieritys määritetään kuvapisteinä MM_TEXT -koordinaatiston kohdistustapaa käytettäessä. Vieritysarvot voidaan myös määrittää eri kohdistustapoja käytettäessä myös todellisina reaalimailman mittoina. Voit esimerkiksi määrittää pystyvierityspalkin vierittämään sentin kerrallaan ja sivuvierityksen 10 cm.

18 432 Kehittyneet dokumentti/näkymä-tekniikat Näkymien vierittäminen ja koon muuttaminen vaakavierityspalkin rivi- tai sivuvierityksen määrää ja cy pystyvierityspalkin. SetScrollSizes()-funktio voidaan alustaa, kun näkymä näytetään ensimmäisen kerran OnInitialUpdate()-funktiossa. Voit siis kaksoisnapauttaa tätä funktiota projektin työtilaikkunan ClassViewsivulla, jotta pääset muokkaamaan näkymäluokan OnInitialUpdate()-jäsenfunktiota. Voisit lisätä vielä CSize-oliot SetScrollSizes()-funktion parametrejä varten rivi- ja sivuvierityksen muuttamiseksi (listauksen 18.9 mukaan). LISTAUS 18.9 LST18_9.CPP Rivi- ja sivuvierityksen asettaminen SetScrollSizes()-funktiolla 1 SetScrollSizes() voi muutta myös molempien vierityspalkkien rivi- ja sivuvieritysarvoja. 1 void CPanSDIView::OnInitialUpdate() 2 { 3 CScrollView::OnInitialUpdate(); 4 CSize sizetotal; 5 // TODO: calculate the total size of this view 6 sizetotal.cx = sizetotal.cy = 2000; // New Size 7 SetScrollSizes(MM_TEXT, sizetotal, 8 CSize(200,10), // ** Page Scroll (X,Y) 9 CSize(20,1)); // ** Line Scroll (X,Y) 1 10 } Huomaa, että vaakasuuntaiset vieritysmäärät ovat pystysuuntaista suurempia sekä rivi- että sivuvierityksessä. Jos käännät ja ajat sovelluksesi ja napautat vieritysnuolta sekä vierityspalkkia vieritysruudun ja nuolen väliltä, huomaat selvän eron vaaka- ja pystyvierityspalkkien vieritysmäärässä. Laitteen vieritysaseman selvittäminen GetScrollPosition() palauttaa vieritysaseman loogisissa yksiköissä. Tästä syystä nämä yksiköt riippuvat asetetusta koordinaatiston kohdistustavasta. Jos haluat vieritysaseman aina laiteyksikköinä (kuvapisteinä), joudut käyttämään GetDeviceScrollPosition()- funktiota. Funktiot palauttavat saman arvon MM_TEXTkondistustapaa käytettäessä. Vieritysaseman käyttäminen Usein on hyödyllistä tietää, mikä osa näytöstä on sillä hetkellä esillä ja mikä on sen sijainti koko kuvassa. Entä, jos esimerkiksi haluaisit piirtää ristikon kuvan keskelle? Voisitko käyttää aikaisempaan tapaan GetClientRect()-funktiota ja sitten CRectin CenterPoint()- jäsenfunktiota? Tämä toimisi ainoastaan, jos ikkunasi olisi aivan näkymän vasemmassa yläkulmassa. Jos vierityspalkit olisi asetettu näkymän keskelle, olisi työalue (client rect) yhä vasemmassa yläkulmassa samoin kuin mahdollisesti piirrettävä ristikkokin. Saat vieritysnäkymän GetScrollPosition()-funktiolla selville näytettävän ikkunan osan paikan koko näkymästä ja tämän tuloksen perusteella saadaan ikkunan näkyvän osan keskipiste laskettua työ-

19 Näkymien vierittäminen ja koon muuttaminen alueen CenterPoint()-funktiolla ja siihen piirrettyä. Voit nyt lisätä OnDraw()-funktioon Ellipse()-kutsun jälkeen listauksessa esitetyn koodin ristikon piirtämiseksi ikkunan näkyvän osan keskelle. LISTAUS LST18_10.CPP Ristikon piirtäminen vieritettyyn paikkaan GetScrollPosition()-funktion avulla OSA V LUKU // Make a CRect 2 CRect rctotal(cpoint(0,0),gettotalsize()); 3 4 // Draw Ellipse 5 pdc->ellipse(rctotal); 6 7 // ** Get Client Rect 8 CRect rcclient; 9 GetClientRect(&rcClient); // ** Get Scroll Pos 12 rcclient += GetScrollPosition(); // ** Find Middle 15 CPoint ptcenter = rcclient.centerpoint(); // ** Top Left to Bottom Right Line 18 pdc->moveto(ptcenter + CPoint(-30,-30)); 19 pdc->lineto(ptcenter + CPoint(+30,+30)); // ** Top Right to Bottom Left Line 22 pdc->moveto(ptcenter + CPoint(+30,-30)); 23 pdc->lineto(ptcenter + CPoint(-30,+30)); // Reselect the old brush 26 pdc->selectobject(poldbrush); 27 } 1 Työalueen RECT-tiedoissa ovat ikkunan näkyvä leveys ja korkeus oikein, mutta tähän arvoon joudutaan lisäämään vielä vierityssiirros, jotta saadaan koordinaatit näkymän suhteen. Listauksessa rivillä 12 rcclient-arvoa kasvatetaan GetScrollPosition()-funktion paluuarvolla; muutoin koodi on varsin tavanomaista. Seuraavaksi lisätään rivin rcclient.centerpoint()-arvo rivien 18 ja 23 MoveTo()- ja LineTo()-funktioiden koordinaatteihin. Saattaa tuntua mutkikkaalta, mutta koodissa on vielä eräs piilossa oleva ongelma, joka estää sitä toimimasta kunnolla. Jos käännät ja ajat ohjelman muutosten tekemisen jälkeen, näet ristikon ikkunassa ja kaikki näyttää toimivan mainiosti. Kuitenkin ikkunaa vieritettäessä ristikko katoaa.

20 434 Määrätyn alueen pakottaminen uudelleen piirrettäväksi Voit asettaa tietyn suorakulmaisen alueen sisällön päivitettäväksi syöttämällä InvalidateRect()-funktiolle suorakulmion koordinaatit ensimmäisenä parametrinä. Vaihtoehtoisesti mutkikkaampia alueita voidaan määrittää InvalidateRgn()-funktiolla, jolloin muoto määritetään ensimmäiseen CRgn-parametriin. Nämä funktiot päivittävät rajaussääntöluetteloa siten, että Windows päivittää vain määritetyt alueet. Kehittyneet dokumentti/näkymä-tekniikat Näkymien vierittäminen ja koon muuttaminen Ilmiö johtuu rajaamisesta (clipping). Windows yrittää minimoida piirtoon käytetyn työn nopeuttaakseen toimintaa. Kun vierität ikkunaa, Windows luulee, että ainoastaan paljastunut osa ikkunasta tulee piirtää uudelleen ja ainoastaan kapea siivu ikkunan reunasta tulee piirretyksi. Tämä toimii, jos piirrettävänä on vieritettävässä ikkunassa liikkumaton ympyrä, mutta se ei päde ristikkoon. Tästä syystä Windowsia täytyy informoida siitä, että sen piirto-oletus on väärä. Tätä varten Windowsissa on funktioita, joilla voidaan asettaa uudelleen piirrettäväksi osia ikkunasta tai jopa koko ikkunan sisältö. Invalidate()-funktio käskee Windowsia unohtamaan rajaussääntönsä ja päivittämään koko alueen. Joudut siis kutsumaan Invalidate()-funktiota, mutta missä? OnDraw()-funktio kuulostaisi aluksi hyvältä, mutta siitä seuraisi vain pahempaa sotkua. Windows näes otaksuu, että OnDraw() hoitaa piirtämisen ja Invalidate()-funktion kutsu siinä saa kaiken alkamaan taas alusta OnDraw()-funktion sijaan joudut miettimään, mikä saa aikaan tarpeen piirtää uudelleen ja joudut sijoittaman uudelleenpiirtokäskyn sinne. Tilanne syntyy vierityspalkkia siirrettäessä. Tästä syystä vierityssanoma tuleekin käsitellä ja kutsua käsittelijästä Invalidate()-funktiota. Vierityssanomien käsitteleminen Vierityspalkkia käsiteltäessä kutsutaan aina OnScroll()- virtuaalifunktiota. Voit käsitellä ja korvata tämän funktion sisällön omalla koodillasi käsitelläksesi vierityspalkkia sovelluksellesi ominaiseen tapaan. OnScroll()-korvaajafunktion lisääminen 1. Napauta hiiren oikealla painikkeella CScrollView-kantaluokasta perittyä luokkaa (kuten CPanSDIView) projektin työtilaikkunan ClassView-sivulla. Saat esiin pikavalikon. 2. Valitse Add Virtual Function komento valikosta. Saat esiin New Virtual Override for class CPanSDIView ikkunan. 3. Vieritä New Virtual Function luetteloa kunnes löydät OnScroll()-funktion (kuva 18.7). 4. Napauta OnScroll()-funktiota ja Add and Edit painiketta lisätäksesi uuden virtuaalifunktion korvaajan.

21 Näkymien vierittäminen ja koon muuttaminen 5. Lisää oma OnScroll()-sovelluskoodisi (kuten Invalidate()- funktiokutsu //TODO-kommenttien alle listauksen tapaan). OSA V LUKU KUVA 18.7 OnScroll-virtuaalifunktion korvaajan lisääminen New Virtual Override ikkunassa. LISTAUS LST18_11.CPP Uudelleenpiirron pakottaminen Invalidate()-funktiolla näkymää vieritettäessä 1 BOOL CPanSDIView::OnScroll(UINT nscrollcode, UINT npos, BOOL bdoscroll) 2 { // ** Invalidate the whole window 6 Invalidate(); 7 8 return CScrollView::OnScroll(nScrollCode, 9 npos, bdoscroll); 10 } Nyt ristikko-ohjelma on saanut tarpeelliset lisäykset toimiakseen kunnolla. Rivillä 6 Invalidate()-funktio kertoo Windowsille, että ikkunan koko työalue kaipaa uudelleenpiirtämistä. OnDraw()-funktion piirtämistä ei rajata ja näet ristikon näkymää vieritettäessäkin. Voit kääntää ja ajaa sovelluksesi tämän rivin lisäämisen jälkeen; nyt ikkunan vierityksen pitäisi onnistua siten, että ristikko pysyy koko ajan ikkunan keskellä kuvan 18.8 tapaan.

22 436 Kehittyneet dokumentti/näkymä-tekniikat Näkymien vierittäminen ja koon muuttaminen KUVA 18.8 Ristikon uudelleenpiirtäminen näkymää vieritettäessä. Voit halutessasi käsitellä myös yksittäiset vaaka- ja pystyvierityspalkin sanomat ja lisätä niihin oman koodisi tai halutessasi muuttaa arvoja ennen kuin scroll view näkymä päivittää näyttöä niiden perusteella. Tätä varten joudut käsittelemään WM_HSCROLL ja WM_VSCROLL-sanomat vastaavissa käsittelijäfunktioissa (OnHScroll() ja OnVScroll()). OnHScroll()-käsittelijän lisääminen WM_HSCROLLsanomalle 1. Napauta hiiren oikealla painikkeella CScrollView-kantaluokasta perittyä luokkaa (kuten CPanSDIView) projektin työtilaikkunan ClassView-sivulla. Saat taas esiin pikavalikon. 2. Valitse Add Windows Message Handler komento valikosta. Saat esiin New Windows Message and Event Handlers for class CPanSDIView ikkunan. 3. Valitse New Windows Messages/Events luettelosta WM_HSCROLL. 4. Napauta Add and Edit painiketta lisätäksesi uuden käsittelijän vaakasuuntaiselle vierityssanomalle. Nyt editorin ikkunassa pitäisi olla WM_HSCROLL-sanoman käsittelevä OnHScroll()-funktio. Tämä sanoma lähetetään sovellukselle, kun sen vaakasuoraa vierityspalkkia liikutetaan. Aivan vastaavaa käsittelijää OnVScroll() kutsutaan (WM_VSCROLL-sanomasta) pystysuoraa vierityspalkkia liikutettaessa.

23 Näkymien vierittäminen ja koon muuttaminen Listauksessa esitetyn OnHScroll()-käsittelijän rivillä 6 vierityspalkin palauttama asema muutetaan käänteiseksi ennen sen palauttamista vieritysnäkymään. LISTAUS LST18_12.CPP Vierityspalkin aseman muuttaminen käänteiseksi OnHScroll()-käsittelijässä OSA V LUKU void CPanSDIView::OnHScroll(UINT nsbcode, UINT npos, CScrollBar* pscrollbar) 2 { 3 // TODO: Add your message -handler code here 4 5 // ** Reverse view position 6 npos = GetScrollLimit(SB_HORZ) - npos; CScrollView::OnHScroll(nSBCode, npos, pscrollbar); 9 } 1 Muuttamalla hpospaikkatietoa ennen kantaluokan OnHScroll()-käsittelijän kutsua arvo muutetaan käänteiseksi. Rivillä 6 käytetty GetScrollLimits()-funktio hakee SB_HORZ-lipun perusteella vaakasuoran vierityspalkin suurimman arvon. Kun vähennät nykyisen arvon suurimmasta mahdollisesta, muuttuu vaakasuoran vierityspalkin liike vastakkaiseksi. Tämä muutettu npos-arvo syötetään sitten rivillä 8 scroll view näkymän OnHScroll()-perustoteutukselle, joka käsittelee vierityssanoman aivan kuin mitään ei olisi tapahtunutkaan. Nyt vaakasuora vierityspalkki kuitenkin toimii täsmälleen odotuksien vastaisesti. Käännä ja aja ohjelmasi muutosten tekemisen jälkeen ja kokeile vaakasuoran vierityspalkin outoa toimintaa. Pystysuora vierityspalkki toimii yhä normaalisti (voit toki muuttaa tämänkin käsittelemällä WM_VSCROLL-sanoman).

24 438 Kehittyneet dokumentti/näkymä-tekniikat Näkymien vierittäminen ja koon muuttaminen

Usean näkymän luominen

Usean näkymän luominen OSA V 471 LUKU 20 20 LUKU Dynaamisten ja staattisten jakajaikkunoiden käyttö Resurssienhallinnan kaltaisen käyttöliittymän tekeminen sovelluksiin ja hallinta ilman ikkunan jakamista 472 Kehittyneet dokumentti/näkymä

Lisätiedot

Hiirisanomiin vastaaminen

Hiirisanomiin vastaaminen OSA II LUKU 8 163 8 LUKU Reagointi käyttäjän painaessa tai vapauttaessa hiiren painikkeen Omien funktioiden käyttö, kun hiiri liikkuu Hiirikoordinaattien käsittely ja valitun alueen tutkiminen 164 Näppäinpainallusten

Lisätiedot

Tekstikontrollit LUKU. Tekstin ja sanomien esittäminen valintaikkunoissa. Tekstin muokkaaminen suorituksen aikana. Tiedon tarkistaminen syötön aikana

Tekstikontrollit LUKU. Tekstin ja sanomien esittäminen valintaikkunoissa. Tekstin muokkaaminen suorituksen aikana. Tiedon tarkistaminen syötön aikana OSA II LUKU 5 85 5 LUKU Tekstin ja sanomien esittäminen valintaikkunoissa Tekstin muokkaaminen suorituksen aikana Tiedon tarkistaminen syötön aikana Kontrollien toiminnan laajentaminen aliluokkien avulla

Lisätiedot

Visual C++ -ohjelman tekeminen ja suunnittelu

Visual C++ -ohjelman tekeminen ja suunnittelu Visual C++ -ohjelman tekeminen ja suunnittelu OSA I LUKU 1 5 1 LUKU Visual C++ -ohjelman tekeminen ja suunnittelu Windows sovellusten tekeminen AppWizardilla Sovelluksen muokkaaminen resurssieditorilla

Lisätiedot

MDI-sovellusten kehittäminen

MDI-sovellusten kehittäminen OSA V 491 LUKU 21 21 LUKU MDI-sovelluksen luominen Siirtyminen dokumentti, näkymä- ja kehysluokan välillä Sovelluksen kehittäminen MFC;n monidokumentti/näkymä-arkkitehtuurilla 492 Kehittyneet dokumentti/näkymä-tekniikat

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

Kynien ja siveltimien käyttö

Kynien ja siveltimien käyttö OSA IV 359 LUKU 16 16 LUKU Eri tyylisten viivojen ja muotojen piirtäminen kynillä Kuvioiden täyttäminen eri värein ja pintakuvioin siveltimellä Piirtofunktioiden hyödyntäminen mutkikkaiden muotojen piirtämiseen

Lisätiedot

Piirtopinnalle piirtäminen

Piirtopinnalle piirtäminen OSA IV 333 LUKU 15 15 LUKU Erilaiset piirtopinnat ja niiden käyttö Piirtotilan ja piirtopinnan asetukset ja käyttö Koordinaatistojen kohdistustapojen käyttö piirrettäessä tuumina tai sentteinä 334 Piirtopintatietorakenteet

Lisätiedot

Kehitysympäristö LUKU. Developer Studio kehitysympäristön alkeet. Liikkuminen projektin työtilassa ja sen eri näkymissä

Kehitysympäristö LUKU. Developer Studio kehitysympäristön alkeet. Liikkuminen projektin työtilassa ja sen eri näkymissä OSA I LUKU 2 23 2 LUKU Developer Studio kehitysympäristön alkeet Liikkuminen projektin työtilassa ja sen eri näkymissä Projektien hallinnan vaatimat asetukset 24 Developer Studio - ympäristön räätälöinti

Lisätiedot

Tulostaminen ja esikatselu

Tulostaminen ja esikatselu OSA V 521 LUKU 22 22 LUKU Tulostamisen ja esikatselu toteuttaminen vakiosovellusrunkoa räätälöimällä Monisivuisten raporttien toteuttaminen Eri sivusuhteiden ja laitteiden mittojen käsitteleminen Tulostaminen

Lisätiedot

ActiveX-kontrollien käyttö

ActiveX-kontrollien käyttö OSA II LUKU 9 181 9 LUKU Kehittyneiden ActiveX-kontrollien lisääminen projektiisi Kontrollin ominaisuuksien ja tyylien muokkaaminen Kontrollista saadun tiedon hyödyntäminen ohjelmassa 182 ActiveX-kontrollit

Lisätiedot

Luettelo-, puu-, parannetun tekstiruutu- sekä HTML-näkymän käyttö

Luettelo-, puu-, parannetun tekstiruutu- sekä HTML-näkymän käyttö Luettelo-, puu-, parannetun tekstiruutu- sekä HTML-näkymän käyttö OSA V 439 LUKU 19 19 LUKU Luettelo-, puu-, parannetun tekstiruutu- sekä HTML-näkymän käyttö Luettelon tietojen ylläpito List View näkymässä

Lisätiedot

LIITE 1 1. Tehtävänä on mallintaa kitara ohjeiden mukaan käyttäen Edit Poly-tekniikkaa.

LIITE 1 1. Tehtävänä on mallintaa kitara ohjeiden mukaan käyttäen Edit Poly-tekniikkaa. LIITE 1 1 HARJOITUS 1 Kitara Tehtävänä on mallintaa kitara ohjeiden mukaan käyttäen Edit Poly-tekniikkaa. Käsiteltävät asiat Edit Poly Muokkaus kuvan mukaan TurboSmooth Extrude 1. Tarkistetaan että mittayksiköt

Lisätiedot

Valintaikkunoiden luonti ja suunnittelu

Valintaikkunoiden luonti ja suunnittelu OSA II LUKU 3 43 3 LUKU Valintaikkunoiden luonti ja suunnittelu Valmiin valintaikkunan muokkaaminen ja uuden valintaikkunapohjan luominen Valintaikkunoiden ja kontrollien ominaisuuksien asettaminen Kontrollien

Lisätiedot

Valintanauhan komennot Valintanauhan kussakin välilehdessä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja.

Valintanauhan komennot Valintanauhan kussakin välilehdessä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja. Pikaopas Microsoft Excel 2013 näyttää erilaiselta kuin aiemmat versiot. Tämän oppaan avulla pääset alkuun nopeasti ja saat yleiskuvan uusista ominaisuuksista. Komentojen lisääminen pikatyökaluriville Pidä

Lisätiedot

Taulukot. 2002 Päivi Vartiainen 1

Taulukot. 2002 Päivi Vartiainen 1 Taulukot Taulukon lisääminen FrontPagessa tapahtuu samalla tavoin kuin Word tekstinkäsittelyohjelmassakin. Valitse vakiotyökaluriviltä Lisää taulukko painike. Kun olet napsauttanut painikkeen alas voit

Lisätiedot

Dokumentit, näkymät ja kehykset

Dokumentit, näkymät ja kehykset OSA III 249 LUKU 12 12 LUKU Single document interface sovelluksen luominen MFC:n dokumentti-näkymä rakennetta hyödyntävän sovelluksen kehittäminen Dokumentti-, näkymä-, kehys- ja dokumenttimalliluokat

Lisätiedot

HELIA 1 (1) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu :04

HELIA 1 (1) Outi Virkki Käyttöliittymät ja ohjelmiston suunnittelu :04 HELIA 1 (1) Luento 7 Graafisen käyttöliittymän peruselementit... 2 Ikkunat... 2 Sovellusikkunat (Application Windows)... 2 Asiakirjaikkunat (Document Windows)... 3 Toissijaiset sovellusikkunat (Secondary

Lisätiedot

Fonttien käyttö LUKU. Tekstin esittäminen värein ja tyylein. Fonttien käyttö sovelluksen viimeistelyyn OSA IV LUKU 17.

Fonttien käyttö LUKU. Tekstin esittäminen värein ja tyylein. Fonttien käyttö sovelluksen viimeistelyyn OSA IV LUKU 17. OSA IV 389 LUKU 17 17 LUKU Tekstin esittäminen värein ja tyylein sovelluksen viimeistelyyn 390 Grafiikan piirtäminen William Caxtonin keksittyä painetun sanomalehden olemme olleet pääsemättömissä painotuotteista.

Lisätiedot

TAULUKKO, KAAVIO, SMARTART-KUVIOT

TAULUKKO, KAAVIO, SMARTART-KUVIOT PowerPoint 2013 Taulukko, kaaviot, SmartArt-kuviot Sisällysluettelo TAULUKKO, KAAVIO, SMARTART-KUVIOT TAULUKOT... 1 Taulukon muotoileminen... 1 Taulukon koon muuttaminen... 2 Rivien valitseminen... 2 Sarakkeiden

Lisätiedot

TIETOKONEEN ASETUKSILLA PARANNAT KÄYTETTÄVYYTTÄ

TIETOKONEEN ASETUKSILLA PARANNAT KÄYTETTÄVYYTTÄ TIETOKONEEN ASETUKSILLA PARANNAT KÄYTETTÄVYYTTÄ Windows XP-käyttöjärjestelmän asetuksilla sekä Word-asetuksilla voit vaikuttaa tietokoneen näytön ulkoasuun, selkeyteen ja helppokäyttöisyyteen.. 1) ASETUKSET

Lisätiedot

GeoGebra-harjoituksia malu-opettajille

GeoGebra-harjoituksia malu-opettajille GeoGebra-harjoituksia malu-opettajille 1. Ohjelman kielen vaihtaminen Mikäli ohjelma ei syystä tai toisesta avaudu toivomallasi kielellä, voit vaihtaa ohjelman käyttöliittymän kielen seuraavasti: 2. Fonttikoon

Lisätiedot

Muuttujien määrittely

Muuttujien määrittely Tarja Heikkilä Muuttujien määrittely Määrittele muuttujat SPSS-ohjelmaan lomakkeen kysymyksistä. Harjoitusta varten lomakkeeseen on muokattu kysymyksiä kahdesta opiskelijoiden tekemästä Joupiskan rinneravintolaa

Lisätiedot

Mukavia kokeiluja ClassPad 330 -laskimella

Mukavia kokeiluja ClassPad 330 -laskimella Mukavia kokeiluja ClassPad 330 -laskimella Tervetuloa tutustumaan Casio ClassPad laskimeen! Jos laskin ei ole yksin omassa käytössäsi, on hyvä tyhjentää aluksi muistit ja näytöt valikosta Edit->Clear All

Lisätiedot

TAULUKOINTI. Word Taulukot

TAULUKOINTI. Word Taulukot Word 2013 Taulukot TAULUKOINTI TAULUKOINTI... 1 Taulukon tekeminen... 1 Solusta toiseen siirtyminen... 1 Solun tyhjentäminen... 2 Taulukon Layout (Asettelu) välilehti... 2 Alueiden valitseminen taulukossa...

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto Condess ratamestariohjelman käyttö Aloitus ja alkumäärittelyt Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto Kun kysytään kilpailun nimeä, syötä kuvaava nimi. Samaa nimeä käytetään oletuksena

Lisätiedot

Käyttöopas RoofCon Viewer

Käyttöopas RoofCon Viewer Käyttöopas RoofCon Viewer Sisällysluettelo Käyttöopas RoofCon Viewer... 1 Sisällysluettelo... 2 Asennus... 3 Merkitse objekti... 3 Zoomaa... 3 Mittaa etäisyys... 3 Työkaluvalikko ja Piirustusvaihtoehdot...

Lisätiedot

FrontPage 2000 - Näkymät

FrontPage 2000 - Näkymät FrontPage 2000 - Näkymät FrontPagessa on kuusi erilaista näkymää sivustoon. Sivunäkymä Tässä näkymässä luodaan sivut eli näkymä vastaa paljolti Wordin tekstinkäsittelyohjelman näkymää. Tässä on myös muokattava

Lisätiedot

Käsiteltävät asiat LIITE 3 1. Tehtävänä on mallintaa lipputanko ja siihen lippu ohjeiden mukaan. Cloth. Wind Garment Maker

Käsiteltävät asiat LIITE 3 1. Tehtävänä on mallintaa lipputanko ja siihen lippu ohjeiden mukaan. Cloth. Wind Garment Maker LIITE 3 1 HARJOITUS 3 Cloth Tehtävänä on mallintaa lipputanko ja siihen lippu ohjeiden mukaan. Käsiteltävät asiat Cloth Wind Garment Maker 1. Tarkistetaan että mittayksiköt ovat Generics Units, valikosta

Lisätiedot

Ohje internetkarttapalveluun

Ohje internetkarttapalveluun Ohje internetkarttapalveluun Kartalla liikkuminen Liiku kartalla käyttäen hiirtä, karttaikkunan zoomauspainikkeita tai pikavalikkotoimintoja. 1. Näkymän liikuttaminen: Liikuta karttaa hiirellä raahaamalla.

Lisätiedot

1 Funktiot, suurin (max), pienin (min) ja keskiarvo

1 Funktiot, suurin (max), pienin (min) ja keskiarvo 1 Funktiot, suurin (max), pienin (min) ja keskiarvo 1. Avaa uusi työkirja 2. Tallenna työkirja nimellä perusfunktiot. 3. Kirjoita seuraava taulukko 4. Muista taulukon kirjoitusjärjestys - Ensin kirjoitetaan

Lisätiedot

Adobe Photoshop Elements, kuvakäsittelyn perusteet

Adobe Photoshop Elements, kuvakäsittelyn perusteet Sivu 1 / 8 Adobe Photoshop Elements, kuvakäsittelyn perusteet Lyhyesti Tämän oppaan avulla voit - kääntää kuvan - valita kuvasta vain tietyn alueen ja poistaa kuvasta muut (eng. crop, suom. rajaus) - muuttaa

Lisätiedot

Posterin teko MS Publisherilla

Posterin teko MS Publisherilla Posterin teko MS Publisherilla Ensimmäisenä avaa MS Publisher 2010. Löydät sen Windows valikosta - All programs - Microsoft Office. Publisheriin avautuu allaolevan kuvan mukainen näkymä. Mikäli et näe

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

Edistymis-, vieritys- ja liukupalkit sekä päiväys/aika -kontrollit

Edistymis-, vieritys- ja liukupalkit sekä päiväys/aika -kontrollit Edistymis-, vieritys- ja liukupalkit sekä päiväys/aika -kontrollit OSA II LUKU 7 131 7 LUKU Edistymis-, vieritys- ja liukupalkit sekä päiväys/aika -kontrollit Edistymispalkin käyttö näyttämään pitkien

Lisätiedot

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

Lisätiedot

OHJE EXCEL-MAKRON LUOMISEKSI JA MAKRON KÄYTÖSTÄ

OHJE EXCEL-MAKRON LUOMISEKSI JA MAKRON KÄYTÖSTÄ OHJE EXCEL-MAKRON LUOMISEKSI JA MAKRON KÄYTÖSTÄ Tässä ohjeessa esitetään kuinka Excel-taulukkolaskentaan luodaan makro ja annetaan muutama vinkki makron käyttöön. Ohje koostuu seuraavasti: 1. Mikä makro

Lisätiedot

Outlook Web App ver 1.2

Outlook Web App ver 1.2 Outlook Web App ver 1.2 Kirjautuminen Kirjoita selaimen osoiteriville: o365.edu.hel.fi Kirjoita opetuksen verkon tunnuksesi ja salasanasi avautuvalla kirjautumissivulla. Hetken odottelun jälkeen esiin

Lisätiedot

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat Microsoft Office 2010 löytyy tietokoneen käynnistävalikosta aivan kuin kaikki muutkin tietokoneelle asennetut ohjelmat. Microsoft kansion sisältä löytyy toimisto-ohjelmistopakettiin kuuluvat eri ohjelmat,

Lisätiedot

Vesa Ollikainen, päivitys Juha Haataja 3.8.2010

Vesa Ollikainen, päivitys Juha Haataja 3.8.2010 METROPOLIA Tekstinkäsittely1 Peruskäyttö Vesa Ollikainen, päivitys Juha Haataja 3.8.2010 Tavoitteet ja sisältö Tavoite Lyhyen asiakirjan kirjoitustaito Word-tekstinkäsittelyohjelmalla Sisältö Tekstinkäsittelyohjelman

Lisätiedot

Sovelluksen toimintojen toteuttaminen

Sovelluksen toimintojen toteuttaminen 161 L U K U 5 Sovelluksen toimintojen toteuttaminen Oppitunti 1: Dialogien käyttäminen 162 Oppitunti 2: Sovelluksen tietojen näyttäminen ja tulostaminen 183 Oppitunti 3: Useiden säikeiden käyttäminen 197

Lisätiedot

KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN

KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN -Mene osoitteeseen keskustanuoret.fi/user - Kirjoita saamasi käyttäjätunnus ja salasana - Klikkaa yllä olevaa piirisi logoa niin

Lisätiedot

Johdanto: Jaetut näytöt Jaetun näytön asetukset ja näytöstä poistuminen Aktiivisen sovelluksen valitseminen

Johdanto: Jaetut näytöt Jaetun näytön asetukset ja näytöstä poistuminen Aktiivisen sovelluksen valitseminen Kappale 14: Jaetut näytöt 14 Johdanto: Jaetut näytöt... 232 Jaetun näytön asetukset ja näytöstä poistuminen... 233 Aktiivisen sovelluksen valitseminen... 235 TI-89 / TI-92 Plus:ssä voit jakaa näytön ja

Lisätiedot

QT tyylit. Juha Järvensivu 2008

QT tyylit. Juha Järvensivu 2008 QT tyylit Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisällys QStyle Style sheet Tyyli (QStyle) Kapseloi widgettien Look And Feel ominaisuudet Toteutettu QT:ssa QStyle luokkaan Sisäänrakennettuja tyylejä

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 8.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 8.2.2010 1 / 38 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta ohjelma

Lisätiedot

Mainosankkuri.fi-palvelun käyttöohjeita

Mainosankkuri.fi-palvelun käyttöohjeita Mainosankkuri.fi-palvelun käyttöohjeita Sisällys 1. Johdanto... 1 2. Sisäänkirjautuminen... 1 3. Palvelussa navigointi... 2 4. Laitteet... 2 5. Sisällönhallinta... 4 6. Soittolistat... 7 7. Aikataulut...

Lisätiedot

Transkribuksen pikaopas

Transkribuksen pikaopas Transkribuksen pikaopas Transkribus on alusta, jolla voi puhtaaksikirjoittaa haluamaansa aineistoa ja automaattisesti tunnistaa käsinkirjoitettua tekstiä. Sitä käyttääkseen täytyy rekisteröityä. Tässä

Lisätiedot

Microstation 3D laitesuunnittelu 2014

Microstation 3D laitesuunnittelu 2014 Microstation 3D laitesuunnittelu 2014 Uusi tiedosto Element Templates Graphic Groups Piirustus, Project Explorer Piirustuksen kuvannot Piirustusarkki 5/16/2014 1 Uusi tiedosto Siementiedostona voi käyttää

Lisätiedot

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8) WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8) 1 UUDEN KILPAILUTIEDOSTON AVAUS Avaa Wcondes ohjelma tuplaklikkaamalla wcondes.lnk ikonia. Ohjelma avaa automaattisesti viimeksi tallennetun kilpailutiedoston.

Lisätiedot

ASCII-taidetta. Intro: Python

ASCII-taidetta. Intro: Python Python 1 ASCII-taidetta All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do.

Lisätiedot

KAPPALEMUOTOILUT. Word Kappalemuotoilut

KAPPALEMUOTOILUT. Word Kappalemuotoilut Word 2013 Kappalemuotoilut KAPPALEMUOTOILUT KAPPALEMUOTOILUT... 1 Tekstin tasaaminen... 1 Sisentäminen... 1 Koko kappaleen sisentäminen... 2 Sisennyksen poistaminen... 2 Riippuva sisennys (sivuotsikko)...

Lisätiedot

Word 2010 Pikaopas Hannu Matikainen Päivitetty: 14.4.2012

Word 2010 Pikaopas Hannu Matikainen Päivitetty: 14.4.2012 Word 2010 Pikaopas Hannu Matikainen Päivitetty: 14.4.2012 1(5) Ohjelmaikkunan osat Valintanauhan tärkeimmät välilehdet ovat Tiedosto, Aloitus, Lisää ja Sivun asettelu. Kuvassa näkyy Aloitus-välilehti.

Lisätiedot

9. Kappale -ryhmä - Kappalemuotoilut

9. Kappale -ryhmä - Kappalemuotoilut 9. Kappale -ryhmä - Kappalemuotoilut Aloitus -välilehdellä Kappale -ryhmästä löytyvät kaikki kappalemuotoilut. Huomaa, että kappalemuotoilut ovat aina voimassa seuraavaan kappalemerkkiin asti. Kappalemerkki

Lisätiedot

CEM DT-3353 Pihtimittari

CEM DT-3353 Pihtimittari CEM DT-3353 Pihtimittari Sivu 1/5 CEM DT-3353 Pihtimittari Ongelma Mittarin ohjelmisto ilmoittaa NO DATA vaikka tiedonsiirtokaapeli on kytketty tietokoneen ja mittarin välille, mittarissa on virta päällä

Lisätiedot

Asiakastukiryhmä Kesä- ja talviaika

Asiakastukiryhmä Kesä- ja talviaika Asiakastukiryhmä Kesä- ja talviaika Seppo Takkula Ohjelmistoversio Päiväys Hlö 1.0 04/04/2002 Seppo Takkula Sisältö 1. TARKOITUS...3 2. OHJEET...3 2.1. CLS....3 2.2. NT Tallennin...5 2.3. Näyttötapahtumien

Lisätiedot

Vesa Ollikainen, päivitys Juha Haataja 12.8.2011

Vesa Ollikainen, päivitys Juha Haataja 12.8.2011 METROPOLIA Tekstinkäsittely1 Peruskäyttö Vesa Ollikainen, päivitys Juha Haataja 12.8.2011 Sisällys 1 Tekstinkäsittelyohjelma... 1 2 Tekstinkäsittelyprosessi... 2 3 Word-tekstinkäsittelyohjelman käyttöliittymä...

Lisätiedot

Tilastolliset ohjelmistot 805340A. Pinja Pikkuhookana

Tilastolliset ohjelmistot 805340A. Pinja Pikkuhookana Tilastolliset ohjelmistot 805340A Pinja Pikkuhookana Sisältö 1 SPSS 1.1 Yleistä 1.2 Aineiston syöttäminen 1.3 Aineistoon tutustuminen 1.4 Kuvien piirtäminen 1.5 Kuvien muokkaaminen 1.6 Aineistojen muokkaaminen

Lisätiedot

HARJOITUSTYÖ ITKP101 Ronja Saarinen

HARJOITUSTYÖ ITKP101 Ronja Saarinen HARJOITUSTYÖ ITKP101 Ronja Saarinen ITKP101-Harjoitustyö Ronja Saarinen ronjaemmiwilhelmiina@gmail.com Asiakirjamalli Asiakirjamalli (engl. Template) tarkoittaa valmista asiakirjapohjaa, josta löytyvät

Lisätiedot

C# Windows ohjelmointi perusopas

C# Windows ohjelmointi perusopas Paavo Räisänen C# Windows ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

MICROSOFT EXCEL 2010

MICROSOFT EXCEL 2010 1 MICROSOFT EXCEL 2010 Taulukkolaskentaohjelman jatkokurssin tärkeitä asioita 2 Taulukkolaskentaohjelmalla voit Käyttää tietokonetta ruutupaperin ja taskulaskimen korvaajana Laatia helposti ylläpidettäviä

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 12.4.2010 T-106.1208 Ohjelmoinnin perusteet Y 12.4.2010 1 / 34 Graafiset käyttöliittymät Tähän asti kirjoitetuissa ohjelmissa on ollut tekstipohjainen käyttöliittymä.

Lisätiedot

Pikanäppäin Yhdistelmiä. Luku 6 Pikanäppäimet

Pikanäppäin Yhdistelmiä. Luku 6 Pikanäppäimet Luku 6 Pikanäppäimet Pikanäppäimet ovat näppäinyhdistelmiä, jotka mahdollistavt ZoomTextin komennot ilman ZoomTextin käyttäjäliittymän aktivointia. Pikanäppäin komentoja on melkein jokaisella ZoomTextin

Lisätiedot

Google-dokumentit. Opetusteknologiakeskus Mediamylly

Google-dokumentit. Opetusteknologiakeskus Mediamylly Google-dokumentit 1 2 3 Yleistä 1.1 Tilin luominen 4 1.2 Docs-päävalikkoon siirtyminen 7 Dokumentit-päävalikko 2.1 Kirjaudu Dokumentteihin 9 2.2 Lähetä tiedosto Google-dokumentteihin 11 2.3 Uuden asiakirjan

Lisätiedot

Ohje. ipadia käytetään sormella napauttamalla, kaksoisnapsauttamalla, pyyhkäisemällä ja nipistämällä kosketusnäytön

Ohje. ipadia käytetään sormella napauttamalla, kaksoisnapsauttamalla, pyyhkäisemällä ja nipistämällä kosketusnäytön ipadin käyttö 1. Käynnistä ipad oikeassa yläreunassa olevasta painikkeesta. 2. Valitse alareunasta nuoli Avaa. Vedä sormella nuolesta eteenpäin palkin verran eli pyyhkäise. Tietoturva Käyttöön tarvitaan

Lisätiedot

CSS-kielen avulla määritellään HTML-dokumentin tyyli. CSS avulla voidaan tarkemmin määritellä eri elementtien ominaisuuksia.

CSS-kielen avulla määritellään HTML-dokumentin tyyli. CSS avulla voidaan tarkemmin määritellä eri elementtien ominaisuuksia. CSS1 CSS (Cascading Style Sheets) CSS-kielen avulla määritellään HTML-dokumentin tyyli. CSS avulla voidaan tarkemmin määritellä eri elementtien ominaisuuksia. Esim.

Lisätiedot

Muutamia peruskäsitteitä

Muutamia peruskäsitteitä Muutamia peruskäsitteitä Huom. 1: nämä peruskäsitteet eivät muodosta hyvin määriteltyä keskenään yhteensopivien käsitteiden joukkoa, vaan käsitteet ovat osittain päällekkäisiä ja eri yhteyksissä niillä

Lisätiedot

CABAS. Release Notes 5.4. Uusi kuvien ja dokumenttien käsittely

CABAS. Release Notes 5.4. Uusi kuvien ja dokumenttien käsittely Release Notes 5.4 CABAS Uusi kuvien ja dokumenttien käsittely Olemme päivittäneet ja nykyaikaistaneet CABASin kuvien ja dokumenttien käsittelyn. Nyt kuvia voi vetää hiiren osoittimella ja pudottaa ne kuvaluetteloon.

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 4.10.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 4.10.2017 1 / 23 Mahdollisuus antaa luentopalautetta Luennon aikana voit kirjoittaa kommentteja ja kysymyksiä sivulle

Lisätiedot

Ajokorttimoduuli Moduuli 2. - Laitteenkäyttö ja tiedonhallinta. Harjoitus 1

Ajokorttimoduuli Moduuli 2. - Laitteenkäyttö ja tiedonhallinta. Harjoitus 1 Ajokorttimoduuli Moduuli 2 - Laitteenkäyttö ja tiedonhallinta Harjoitus 1 Tämän harjoituksen avulla opit alustamaan levykkeesi (voit käyttää levykkeen sijasta myös USBmuistitikkua). Harjoitus tehdään Resurssienhallinnassa.

Lisätiedot

ISIS Draw (Windows versio 2.5)

ISIS Draw (Windows versio 2.5) 1 ISIS Draw (Windows versio 2.5) ISIS Draw on helppokäyttöinen kemian piirto-ohjelma, jolla voidaan muun muassa piirtää kemiallisia rakenteita, reaktioyhtälöitä ja yksinkertaisia proteiinirakenteita. Lisäksi

Lisätiedot

Oppilaan pikaopas. Project 2013 käyttöliittymä ja näkymät

Oppilaan pikaopas. Project 2013 käyttöliittymä ja näkymät 1 Oppilaan pikaopas Project 2013 käyttöliittymä ja näkymät Kun avaat Project 2013 -ohjelman, näet ensimmäisenä pelkistetyn näkymän. Uusi Project 2013 voi auttaa projektinhallinnassa kuten esim. projektitietojen

Lisätiedot

Käsiteltävät asiat LIITE 2 1. Tehtävänä on mallintaa keilarata ohjeiden mukaan. MassFX Boolean Lathe

Käsiteltävät asiat LIITE 2 1. Tehtävänä on mallintaa keilarata ohjeiden mukaan. MassFX Boolean Lathe LIITE 2 1 HARJOITUS 2 Keilarata Tehtävänä on mallintaa keilarata ohjeiden mukaan. Käsiteltävät asiat MassFX Boolean Lathe 1. Tarkistetaan että mittayksiköt ovat Generics Units, valikosta Customize/Units

Lisätiedot

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -

Lisätiedot

JAKELUPISTE KÄYTTÖOHJE 2/6

JAKELUPISTE KÄYTTÖOHJE 2/6 käyttöohjeet JAKELUPISTE KÄYTTÖOHJE 2/6 1. Esittely JakeluPiste on helppo ja yksinkertainen ratkaisu tiedostojen lähettämiseen ja vastaanottamiseen. Olipa kyseessä tärkeä word dokumentti tai kokonainen

Lisätiedot

H5P-työkalut Moodlessa

H5P-työkalut Moodlessa H5P-työkalut Moodlessa 1. H5P-työkalujen käyttöönotto Moodlessa Tampereen yliopisto/tietohallinto 2017 Emma Hanhiniemi 1. Klikkaa Moodlen muokkausnäkymässä Lisää aktiviteetti tai aineisto -linkkiä. 2.

Lisätiedot

KUVAN TUOMINEN, MUOKKAAMINEN, KOON MUUTTAMINEN JA TALLENTAMINEN PAINTISSA

KUVAN TUOMINEN, MUOKKAAMINEN, KOON MUUTTAMINEN JA TALLENTAMINEN PAINTISSA KUVAN TUOMINEN, MUOKKAAMINEN, KOON MUUTTAMINEN JA TALLENTAMINEN PAINTISSA SISÄLLYS 1. KUVAN TUOMINEN PAINTIIN...1 1.1. TALLENNETUN KUVAN HAKEMINEN...1 1.2. KUVAN KOPIOIMINEN JA LIITTÄMINEN...1 1.1. PRINT

Lisätiedot

Web Services tietokantaohjelmoinnin perusteet

Web Services tietokantaohjelmoinnin perusteet ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...

Lisätiedot

Työvälineohjelmistot KSAO Liiketalous 1

Työvälineohjelmistot KSAO Liiketalous 1 KSAO Liiketalous 1 Osat Tiedosto voidaan jakaa osiin ja jokainen osa muotoilla erikseen. Osa voi olla miten pitkä tahansa, yhdestä kappaleesta kokonaiseen tiedostoon. Osanvaihto näkyy näytöllä vaakasuorana

Lisätiedot

Johdatus Rhinoon 1 / 17. Digitaalisen arkkitehtuurin yksikkö Aalto-yliopisto

Johdatus Rhinoon 1 / 17. Digitaalisen arkkitehtuurin yksikkö Aalto-yliopisto 1 / 17 Digitaalisen arkkitehtuurin yksikkö Aalto-yliopisto 27.10.2015 Johdatus Rhinoon Työkalujen löytäminen 2 / 17 1. 1. Komentorivi Jos tietää komennon nimen (tai sen alun), voi kirjoittaa sen komentoriville

Lisätiedot

Tietokantojen ja tietuenäkymien käyttö

Tietokantojen ja tietuenäkymien käyttö Tietokantojen ja tietuenäkymien käyttö OSA VI 579 LUKU 24 24 LUKU Tietokantojen ja tietuenäkymien käyttö ODBC-tietolähteen määrittäminen Liittyminen tietokantoihin MFC-sovelluksista Tietuejoukkojen kyseleminen

Lisätiedot

Summamuuttujat, aineiston pilkkominen ja osa-aineiston poiminta 1

Summamuuttujat, aineiston pilkkominen ja osa-aineiston poiminta 1 Summamuuttujat, aineiston pilkkominen ja osa-aineiston poiminta 1 Summamuuttujat, aineiston pilkkominen ja osa-aineiston poiminta I Summamuuttujien muodostus Olemassa olevista muuttujista voidaan laskea

Lisätiedot

MS Visio 2016 liiketoimintaprosessien piirtämisessä

MS Visio 2016 liiketoimintaprosessien piirtämisessä MS Visio 2016 liiketoimintaprosessien piirtämisessä http://office.microsoft.com/fi-fi/ammattitason-kaaviointiohjelmisto-microsoft-visio-fx103472299.aspx Sisällys Johdanto... 1 Vision käynnistäminen...

Lisätiedot

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 7. Quick Start - opas Condes 7. olfellows www.olfellows.net 1.

Condes. Quick Start opas. Suunnistuksen ratamestariohjelmisto. Versio 7. Quick Start - opas Condes 7. olfellows www.olfellows.net 1. Condes Suunnistuksen ratamestariohjelmisto Versio 7 Quick Start opas Yhteystiedot: olfellows Jouni Laaksonen Poijukuja 4 21120 RAISIO jouni.laaksonen@olfellows.net www.olfellows.net olfellows www.olfellows.net

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä Anne Benson/Tanja Bergius Opintojakson ict1td002 käyttöön Sivu 1 / 13 Eclipse 3.2 pikku opas versio 1.0 Ohjeen sisältö: Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Lisätiedot

Word 2007 käyttöliittymä

Word 2007 käyttöliittymä Word 2007 käyttöliittymä Word 2007n ulkoasu ja suurin osa toiminnoista on muuttunut radikaalisti verrattuna edellisiin Wordin versioihin. Toimintoja ei enää suoriteta valikoiden kautta, vaan valikot on

Lisätiedot

Microsoft Projectin mukauttaminen

Microsoft Projectin mukauttaminen LIITE 385 C Microsoft Projectin mukauttaminen Tässä liitteessä kuvataan yleisimpiä tapoja mukauttaa Microsoft Projectia käyttäjän tarpeiden mukaan. Jotkin Microsoft Projectin mukauttamisasetukset ovat

Lisätiedot

VATT Talouden rakenteet. Ohje: Pdf-dian liittäminen PowerPoint -esitykseen. Sisällys:

VATT Talouden rakenteet. Ohje: Pdf-dian liittäminen PowerPoint -esitykseen. Sisällys: VATT Talouden rakenteet Ohje: Pdf-dian liittäminen PowerPoint -esitykseen Tämä ohje koskee Acrobat Reader -ohjelman versiota 9 sekä Firefox ja Internet Explorer -selaimia. Huomaa, että aikaisemmissa versioissa

Lisätiedot

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi Muilla kielillä: English Suomi Pong-peli, vaihe 7 Tässä vaiheessa lisäämme peliin pistelaskun. Pong-pelissä pelaaja saa pisteen kun pallo ohittaa toisen pelaajan mailan. 1. Aliohjelmakutsu laskureita varten

Lisätiedot

Opinto-oppaan tekeminen

Opinto-oppaan tekeminen 1 Opinto-oppaan tekeminen Näiden ohjeiden avulla hahmottuu kuinka opinto-oppaita voidaan luoda n OpasOodissa. Ohje on suunnattu käyttäjille, joilla on in OpasVastuuhenkilö-oikeudet. n käyttölupia voi hakea

Lisätiedot

WINDOWS 7... 1 MICROSOFT OUTLOOK 2010:N UUDET OMINAISUUDET...

WINDOWS 7... 1 MICROSOFT OUTLOOK 2010:N UUDET OMINAISUUDET... 2010 SISÄLLYS WINDOWS 7... 1 MICROSOFT OUTLOOK 2010:N UUDET OMINAISUUDET... 3 MS OUTLOOK OHJE HTTP://OFFICE.MICROSOFT.COM/FI-FI/OUTLOOK-HELP/... 3 LAAJENNETTU VALINTANAUHA... 3 ASETUKSET... 4 LISÄÄ TILAA

Lisätiedot

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include 15: 16: int main() 17: {

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: { Osa I 2. oppitunti C++-ohjelman osat Ennen kuin menemme yksityiskohtaisemmin sisälle C++-luokkiin, -muuttujiin jne, katsokaamme ensin, millaisista osista C++-ohjelma koostuu. Tämän tunnin aikana opit seuraavat

Lisätiedot

6.1 Tekstialueiden valinta eli maalaaminen (tulee tehdä ennen jokaista muokkausta ym.)

6.1 Tekstialueiden valinta eli maalaaminen (tulee tehdä ennen jokaista muokkausta ym.) 6. Tekstin muokkaaminen 6.1 Tekstialueiden valinta eli maalaaminen (tulee tehdä ennen jokaista muokkausta ym.) Tekstin maalaaminen onnistuu vetämällä hiirellä haluamansa tekstialueen yli (eli osoita hiiren

Lisätiedot

E s i t y s g r a f i i k k a a s e l k o k i e l e l l ä MICROSOFT. PowerPoint. P e t r i V a i n i o P e t r i I l m o n e n TIKAS-SARJA

E s i t y s g r a f i i k k a a s e l k o k i e l e l l ä MICROSOFT. PowerPoint. P e t r i V a i n i o P e t r i I l m o n e n TIKAS-SARJA MICROSOFT E s i t y s g r a f i i k k a a s e l k o k i e l e l l ä PowerPoint P e t r i V a i n i o P e t r i I l m o n e n TIKAS-SARJA 6 Sisällysluettelo JOHDANTO TIKAS-PROJEKTI KIRJAN RAKENNE JA TASOMERKINNÄT

Lisätiedot

Opinto-oppaan tekeminen

Opinto-oppaan tekeminen 1 Opinto-oppaan tekeminen Näiden ohjeiden avulla hahmottuu kuinka opinto-oppaita voidaan luoda WebOodin OpasOodissa. Ohje on suunnattu käyttäjille, joilla on WebOodiin OpasVastuuhenkilö-oikeudet. WebOodin

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

Karttapalvelun käyttöohjeet

Karttapalvelun käyttöohjeet Karttapalvelun käyttöohjeet 1 Yleistä... 2 2 Aloitusnäkymä... 2 3 Liikkuminen kartalla... 3 4 Vasemman laidan valikko... 3 4.1 Kaavayhdistelmä... 3 4.2 Valmistelussa olevat kaavat... 3 4.3 Kaavamerkinnät...

Lisätiedot

Facebook-sivun luominen

Facebook-sivun luominen Facebook-sivun luominen Facebook-sivun luominen Etene vaihe vaiheelta 1 Kirjaudu Facebook-palveluun omalla käyttäjätunnuksellasi. Sen jälkeen sivun alareunassa näkyvät toimintolinkit, joista sinun täytyy

Lisätiedot