Podobné dokumenty







David Matoušek, Bohumil Brtík PROGRAMOVÁNÍ MIKROKONTROLÉRÙ S JÁDREM 8051 V JAZYCE C Názoré pøíklady a fukèí programy pro AT89S52 Bez pøedchozího písem












PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury Příklad PROG_

ALGORITMY ČÍSLICOVÉHO ZPRACOVÁNÍ SIGNÁLŮ


V deší dobì stále více programátorù postupì pøechází z klasického psaí kódu v assembleru a itegrovaá vývojová prostøedí a bázi jazyka C. Neí se co div





OBJEKTOVÉ PROGRAMOVÁNÍ V C++ V PŘÍKLADECH 8 Proudová knihovna 8.1 Hierarchie proudů Standardně zavedené proudy


Komerèní využití stavebních návodù je povoleno jen s písemným souhlasem autora a nakladatelství. Soubory na CD ROM mající pøímo vztah ke knize, které

Roman Neruda a Tomáš Holan C++ BUILDER V PØÍKLADECH Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmnožo

29 PØÍKLAD È. 11 VÝPIS ÈÍSLA POMOCÍ PRINTF NA MLCDGEN Nyí si ukážeme, jak upravit pøíklad è. 10 tak, abychom mohli používat fukci pritf pro výpis text

APLIKACE MIKROKONTROLÉRŮ PIC32MX

)HULWRYpMiGUR 2VFLOiWRU 'HWHNWRU.ORSQêREYRG.RQFRYêþOHQ





David Matoušek ÈÍSLICOVÁ TECHNIKA základy konstruktérské praxe Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována ne



APLIKACE ALGORITMŮ ČÍSLICOVÉHO ZPRACOVÁNÍ SIGNÁLŮ 1. DÍL

MIKROKONTROLÉRY PIC BEZ PŘEDCHOZÍCH ZNALOSTÍ





Monografie poskytuje v pøehledné a praktické formì znalosti a výpoèetní nástroje pro modelování šíøení rádiových vln v zástavbì, tedy vnì i uvnitø bud



Kniha je urèena všem zájemcùm o teorii elektrických obvodù Poslouží jako pøíruèka pro praxi, ale i jako uèebnice pro studenty støedních a vysokých ško



Podìkování: Výsledkù publikovaných v této knize bylo dosaženo také za podpory projektù GAÈR 101/06/P108 Výzkum simulaèního a experimentálního modelová


Publikace prezentuje nìkteré poznatky z obsáhlé oblasti analogových soustav, které v poslední dobì prodìlávají rozvoj. Z toho dùvodu ani nemùže podat





UHK Fórum. Univerzita Hradec Králové Fakulta informatiky a managementu Informační management Databázové systémy II

Výukový modul III.2 Inovace a zkvalitnění výuky prostřednictvím ICT





Jan Humlhans NÁBOJOVÉ PUMPY funkce, pøehled a použití Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmno

MIKROPROCESOROVÁ TECHNIKA 9 Událostní systém 9.1 Události Síť ERN Časování událostí Filtrace


Instalační manuál inels Home Control





displeje pro zadní projekci

4 DIELEKTRICKÉ OBVODY ZÁKLADNÍ POJMY DIELEKTRICKÝCH OBVODŮ Základní veličiny a zákony Sériový a paralelní

MIKROKONTROLÉRY PIC PRO POKROČILÉ

3. Sekvenční obvody. b) Minimalizujte budící funkce pomocí Karnaughovy mapy



8560MFP/8860MFP. Phaser. multifunkční zařízení. Návod k obsluze.


Sekvenční logické obvody(lso)

Programovací manuál [CZ] Domovník [ACU 100] Elektronický identifikaèní systém


GENEROVÁNÍ ZVUKŮ POMOCÍ MIKROKONTROLÉRŮ

ELEKTRONICKÉ PRVKY 7 Výkonové a spínací aplikace tranzistorů 7.1 Ztrátový výkon a chlazení součástky První a druhý průraz bipolárního

Iterační výpočty projekt č. 2

Translation from the English language edition: Passing the marker Understanding the New Millennium Energy Copyright 2000 Lee Carroll All Rights Reserv

Tato kniha popisuje výchozí stanoviska psychotroniky jako potenciální vìdní disciplíny Tvoøí ucelenou pracovní hypotézu pro realizaci základního výzku




3.7.5 Znaménkové operátory Násobící operátory Rùzné operátory Základní objekty Konstanty Sig



Obsah. Úvodní informace 2-3. Letové vlastnosti 4. Kompletace 5. Balení 5-9 PARACHUTES DE FRANCE SA


Zvolíme-li R 1 = 10 kω, bude R 2 = 43 kω Z øady E48 vybereme ejbližší vyrábìou hodotu R 2 = 42,2 kω Po dosazeí do (44a) dostaeme 8 () = + = + + D 8 ()


Transkript:

David Matoušek VISUAL C++ 6 0 VÝVOJOVÉ PROSTØEDÍ Praha 2003

David Matoušek VISUAL C++ 6 0 vývojové prostøedí Bez pøedchozího písemého svoleí akladatelství esmí být kterákoli èást kopírováa ebo rozmožováa jakoukoli formou (tisk, fotokopie, mikrofilm ebo jiý postup), zadáa do iformaèího systému ebo pøeášea v jié formì èi jiými prostøedky Autor a akladatelství epøejímají záruku za správost tištìých materiálù Pøedkládaá zapojeí a iformace jsou zveøejìy bez ohledu a pøípadé patety tøetích osob Nároky a odškodìí a základì zmì, chyb ebo vyecháí jsou zásadì vylouèey Veškerá práva vyhrazea Ig David Matoušek, 2003 Nakladatelství BEN techická literatura, Vìšíova 5, Praha 10 David Matoušek: VISUAL C++ 6 0 vývojové prostøedí BEN techická literatura, Praha 2003 1 vydáí ISBN 80-7300-130-6

OBSAH O KNIZE 10 1 ÚVOD 11 1 1 Klasická aplikace vytvoøeá ve Visual C++ 12 1 2 Na øadì je MFC 14 1 2 1 Architektura dokumet/pohled 14 1 2 2 Hierarchie tøíd MFC 14 1 2 3 Fukce AFX 15 1 3 Prví aplikace vytvoøeá pomocí MFC 15 1 3 1 Založeí projektu 15 1 3 2 Geerace tøíd MFC aplikace 17 1 3 3 Zápis metod 18 1 3 4 Vytvoøeí metody CPrviApp::IitIstace 20 1 3 5 Pøipojeí MFC do projektu 20 1 3 6 Zdrojové soubory 22 1 3 7 Pøeklad 24 1 3 8 Jak je aplikace sestavea 25 1 3 9 Výzam jedotlivých souborù 25 2 POPIS TØÍD CFRAMEWND A CWINAPP 27 2 1 Tøída CFrameWd 28 2 1 1 Atributy 29 2 1 2 Metody 30 2 1 3 Hadlery (výbìr základích) 34 2 2 Tøída CWiApp 38 2 2 1 Atributy 38 2 2 2 Metody 39 2 2 3 Hadlery 40 3 PRVNÍ KROKY S OBJEKTY MFC 41 3 1 Zmìa astaveí oka 42 3 2 Uživatelská ikoa 45 3 3 Hadlery 50 3 4 Zobrazujeme messagebox 52 3 5 Pár trikù a závìr 54 A D MATOUŠEK: Visual C++ 6 0 vývojové prostøedí 3

3 5 1 Vytvoøeí uvolìé verze 54 3 5 2 Sestaveí aplikace tak, aby epotøebovala dyamické kihovy 55 3 5 3 Otevøeí posledì rozpracovaých projektù 56 3 5 4 Dokoèováí kódu 56 3 5 5 Hledáí iformací v MSDN 58 3 5 6 Ladìí aplikace 58 4KRESLENÍ DO OKNA 61 4 1 Základí iformace 62 4 2 Widows GDI 62 4 2 1 Tøída CPaitDC 63 4 2 2 Tøída CClietDC 63 4 2 3 Tøída CWidowDC 63 4 2 4 Tøída CMetaFileDC 63 4 3 POPIS TØÍDY CPAINTDC 64 4 3 1 Atributy 64 4 3 2 Metody 64 4 4 Základí kreslicí metody 67 4 4 1 Pøesu pera, práce s pixely 67 4 4 2 Kresleí obdélíkù, elips, obloukù apod 68 4 4 3 Kresleí mohoúhelíkù a série úseèek 70 4 4 4 Kresleí køivek 70 4 4 5 Kresleí bitmap 71 4 4 6 Výpis textu 72 4 4 7 Další fukce 73 4 5 Struktury POINT a SIZE 73 4 6 Tøída CPoit 73 4 6 1 Kostruktory 74 4 6 2 Metoda Offset 74 4 6 3 Operátory 74 4 7 Typ COLORREF a makro RGB 75 4 8 Tøída CGDIObject a její ásledíci 75 4 8 1 Tøída CPe 76 4 8 2 Tøída CBrush 77 4 8 3 Tøída CFot 78 4 8 4 Tøída CBitmap 79 4 9 Pøíklady 81 4 9 1 Kresleí bodù 81 4 9 2 Výpis textu 82 4 9 3 Styly per 85 4 9 4 Styly štìtcù 87 4 D MATOUŠEK: Visual C++ 6 0 vývojové prostøedí A

4 9 5 Rectagle, FillRect, FrameRect, RoudRect 89 4 9 6 Mohoúhelíky a køivky 90 4 9 7 Ellipse, Arc, Chord, Pie a AgleArc 92 4 9 8 Ukládáí a obovováí stavu kotextu 93 4 9 9 Použití metody CPaitDC::BitBlt 95 4 9 10 Použití metody CPaitDC::StretchBlt 95 4 10 Skrolováí oka 97 4 10 1 Zobrazeí scrollbarù 97 4 10 2 Nastaveí scrollbarù 97 4 10 3 Zprávy scollbarù 98 4 10 4 Metoda CFrameWd::ScrollWidow 100 4 10 5 Pøíklad použití 100 5 PRÁCE S NABÍDKAMI 107 5 1 Základí pojmy 108 5 1 1 Hlaví abídka 108 5 1 2 Místí abídka 109 5 1 3 Systémová abídka 110 5 2 Tvorba abídek 110 5 3 Tøída CMeu 111 5 3 1 Atribut 111 5 3 2 Metody 111 5 4 Základí operace s tøídou CMeu 118 5 4 1 Zpùsoby zavedeí abídky ze zdroje 118 5 4 2 Programové vytváøeí abídek 118 5 4 3 Uvolìí abídky z pamìti 118 5 5 Nabídky a zprávy 119 5 6 Hadlery pro podporu abídky tøídou CFrameWd 119 5 7 Hadlerová makra 123 5 7 1 ON_COMMAND 123 5 7 2 ON_COMMAND_RANGE 123 5 7 3 ON_WM_SYSCOMMAND 123 5 7 4 ON_WM_CONTEXTMENU 124 5 7 5 ON_WM_MEASUREITEM 124 5 7 6 ON_WM_DRAWITEM 124 5 8 Pøíklady 124 5 8 1 Prví aplikace s hlaví abídkou 124 5 8 2 Pøidáváme místí abídku 135 5 8 3 Místí abídka jako zrcadlo podabídky 141 5 8 4 Uživatelsky kresleé položky abídky 143 5 8 5 Pøidáí položek abídky za bìhu programu, práce se systémovou abídkou 147 A D MATOUŠEK: Visual C++ 6 0 vývojové prostøedí 5

6 ZÁKLADNÍ OVLÁDACÍ PRVKY (KOMPONENTY) 151 6 1 Spoleèý pøedek CWd 152 6 1 1 Atribut 152 6 1 2 Metody 152 6 1 3 Vytvoøeí prvku a zmìa stylu 153 6 2 Tlaèítko tøída CButto 153 6 2 1 Metody 155 6 2 2 Pøíklad elemetárí práce s tlaèítky Styly tlaèítek a události 157 6 3 Statický prvek tøída CStatic 165 6 3 1 Metody 166 6 3 2 Pøíklad použití Ukládáí iformací do ovládacího prvku, zmìa stylu již vytvoøeého ovládacího prvku 168 6 4Posuvík tøída CScrollBar 175 6 4 1 Metody 175 6 4 2 Pøíklad použití Nová tøída CColorScrollBar (lze volit barvu scrollbaru) 177 6 5 Editaèí pole tøída CEdit 184 6 5 1 Metody 184 6 5 2 Základí práce s tøídou CEdit 188 6 5 3 Jedoduchý textový editor 192 6 5 4 Omezeí vstupu (èíslice), tøída CNumEdit 200 6 6 Sezam tøída CListBox 203 6 6 1 Metody (vìtšia z tìchto metod vrací pøi chybì hodotu LB_ERR) 204 6 6 2 Styl LBS_SORT 210 6 6 3 Metoda CListBox::SetTabStops 214 6 6 4 Sezam jme souborù 217 6 6 5 Uživatelský sezam souborù (vèetì zobrazeí asociovaé ikoy a délky souboru) 222 6 7 Prvek combobox tøída CComboBox 233 6 7 1 Metody 234 6 7 2 Pøíklad ukazující styly comboboxù 237 6 8 Další ovládací prvky 240 7 POMOCNÉ TØÍDY 241 7 1 CStrig práce s øetìzci 242 7 2 CFile práce se soubory 245 7 2 1 Tøída CMemFile podpora práce s dyamickou pamìtí 246 7 2 2 Další ásledíci tøídy CFile 247 7 3 CArray pole 247 7 3 1 Idexováí 248 7 3 2 Velikost pole 248 7 4CExceptio 249 6 D MATOUŠEK: Visual C++ 6 0 vývojové prostøedí A

7 4 1 Kostruktor 250 7 4 2 Metody 250 7 4 3 CFileExceptio 250 7 5 Práce s iicializaèími soubory a systémovou databází Registry 251 8 DIALOGY 257 8 1 Tøída CDialog 258 8 1 1 Modálí dialog 259 8 1 2 Nemodálí dialog 260 8 1 3 Metody 260 8 1 4 Hadlery 261 8 2 Dialog o aplikaci 261 8 3 Výmìa dat 270 8 4 Validace dat 283 8 5 Nemodálí dialog 290 8 6 Dialog jako hlaví oko aplikace 301 8 7 Stadardí dialogy 309 8 7 1 CFileDialog 309 8 7 2 CColorDialog 314 8 7 3 CFotDialog 315 8 7 4 CPageSetupDialog 318 8 7 5 CPritDialog 321 8 7 6 CFidReplaceDialog 324 8 8 Jeda vìtší aplikace a závìr Textový editor 327 LITERATURA 342 REJSTØÍK 343 KNIHY BEN TECHNICKÁ LITERATURA 351 A D MATOUŠEK: Visual C++ 6 0 vývojové prostøedí 7

CO NAJDETE NA DOPROVODNÉM CD-ROM Doprovodé CD-ROM obsahuje všechy iformace potøebé pro sadou práci s kihou Tyto iformace lze rozdìlit do logických celkù, které se acházejí v oddìleých adresáøích: adresáø ATMEL je off-lie podoba èásti www stráek firmy ATMEL zamìøeých a AVR adresáø BEN obsahuje off-lie verzi www stráek akladatelství BEN techická literatura (aktualizováo k poèátku bøeza 2003), jejichž souèástí je poèítaèová verze tištìého katalogu Edièího pláu jaro/léto 2003, adresáø DATASHEET obsahuje dokumetaci vybraých itegrovaých obvodù, které jsou v kize používáy, ve formátu PDF Najdete zde též samorozbalitelý archiv programu Adobe Acrobat Reader verze 5 0, který slouží k prohlížeí PDF souborù, adresáø FOTO obsahuje, jak sám ázev apovídá, fotografie hotových pøípravkù Každý byl afoce z ìkolika pohledù, aby byla lépe dokumetováa jejich možá stavba, Do shodého adresáøe jsme umístili trial verzi prohlížeèe ACDSee stažeou z Iteretu (http://www acdsystems com): ACDSee Classic (velikost istalaèího souboru cca 1,6 MB, miimálí požadavky Widows 95/98/Me/NT4/2000, PC 486DX s 32 MB RAM, režim grafického adaptéru s 256barvami, 4 MB volého místa a pevém disku, vhodý Iteret Explorer 4 0 ebo pozdìjší) Tip: pokud se vám fotografie zdají pøíliš tmavé, aktivujte ve vašem prohlížeèi Gamma korekci a hodotu apø 1 50 (optimálí hodota závisí a astaveí vašeho grafického subsystému) adresáø KATALOG obsahuje elektroický ceík firmy GM Electroic stažeý z Iteretu (z poèátku bøeza 2003) a poèítaèovou podobu tištìého katalogu v PDF Aktualizovaou verzi lze získat a URL: http://www gme cz Orietaèí cey všech souèástek byly bráy z tohoto katalogu Navíc je zde umístìa poèítaèová verze (PDF) tištìého katalogu pro rok 2003, adresáø OBECNICE je off-lie podoba www stráek (vèetì ceíku) pøedího èeského prodejce obvodù (Zásilková služba ELEKTRONIC OBECNICE), programovacích kitù a programátorù Atmel Navíc je a tìchto strákách pøehled zapojeí koektorù a redukcí ze zámého webu Hardware book, adresáø PROGRAMY obsahuje zdrojové i pøeložeé formy všech programù realizovaých v kize, jakožto ovládací program programátoru ISP (SDKAVR), adresáø SPOJE obsahuje klišé plošých spojù všech pøípravkù popsaých v kize ve formátu TIF a avíc ve zdrojovém formátu BRD programu EAGLE je verze 2 6, aby si èteáøi pøípadì mohli plošé spoje upravit podle vlastích pøedstav Nìkteré spoje jsme ještì v redakci dodateèì upravovali (zvìtšováí úchytých plošek pro souèástky, ), takže fiálí verze je uložea pouze ve formátu TIF (je shodá s klišé otištìými v kize), adresáø SW obsahuje software vhodé k vážé práci s procesory Atmel AVR, stažeé z iteretových stráek firmy ATMEL: AVR_3 1 (wavrasm), AVR_3 5 (AVR Studio 3 5), AVR_4 0 (AVR Studio 4 0) 8 D MATOUŠEK: Visual C++ 6 0 vývojové prostøedí A

O KNIZE Tato kiha sezamuje èteáøe formou podrobého popisu tøíd implemetovaých v kihovì MFC s programováím pomocí vývojového prostøedí Visual C++ 6 0 Nechybí samozøejmì pøíklady, které jsou praktickou ukázkou toho, jak programovat Úvodí kapitola ukazuje (pro zajímavost) tvorbu klasické Wi API aplikace Jedá se o ukázku komplikovaosti vývoje programu bez použití MFC Proto je ásledì ukázáa tvorba podobé aplikace za pomoci MFC (postup je jedodušší a cílový kód dostateèì efektiví) Druhá kapitola se vìuje pomìrì detailímu popisu tøíd CFrameWd a CWiApp, které jsou velmi dùležité Jedá se o bázové tøídy, ze kterých vytváøíme hlaví oko aplikace a aplikaci samotou Kromì popisu metod a atributù jsou uvedey i ejvýzamìjší hadlery Tøetí kapitola je praktickou ukázkou toho, jak využít možostí tøíd CFrameWd a CWiApp pøi tvorbì vlastí aplikace Je také ukázáa tvorba a použití uživatelské ikoy, je pøedvedeo použití hadlerù a zobrazeí messageboxu Kapitola koèí ukázkou ladìí aplikace pomocí debugeru Ètvrtá kapitola ás ejprve sezamuje s filozofií kresleí do oka poèíaje popisem tøíd odvozeých z CDC (pøedevším CPaitDC) Následuje popis pomocých tøíd (CPoit, CRect, CSize, CPe, CBrush, CFot, CBitmap) a dále jsou pøedvedey pøíklady Nakoec je ukázáa aplikace dovolující skrolovat obsah oka Pátá kapitola je vìováa abídkám (meu) Po vysvìtleí základích pojmù a podrobém výkladu tøídy CMeu jsou opìt ukázáy vzorové pøíklady Kromì jiého se jedá o použití radioitem položek a položek, které jsou uživatelsky kresleé Také je ukázáa možost úpravy systémové abídky Šestá kapitola se vìuje ovládacím prvkùm (kompoetám) Jsou popsáy tøídy obalující základí ovládací prvky Widows: CButto (tlaèítko, checkbox, radiobutto, groupbox), CStatic (titulek, rámeèek, obrázek), CScrollBar (scrollbar), CEdit (jedoøádkový i víceøádkový), CListBox (listbox), CComboBox (combobox) Výklad je doprováze øadou etriviálích pøíkladù, ve kterých se èasto používají upraveé ovládací prvky (odvozeé ze základích tøíd) Sedmá kapitola pøiáší zajímavé iformace o tøídách, které zjedodušují vývoj aplikace Jedá se o tøídy: CStrig (øetìzce), CFile (práce se soubory), CArray (šabloa dyamického pole) a CExceptio (bázová výjimka) Nakoec je ukázáa práce s iicializaèím souborem a systémovou databází Registry pomocí metod obsažeých ve tøídì CWiApp Posledí (osmá) kapitola je vìováa dialogùm Po ezbytém teoretickém úvodu a popisu tøídy CDialog je pøedvedea aplikace s dialogem O aplikaci Další pøíklady ukazují použití techologií DDX a DDV, které zjedodušují pøeos a validaci A D MATOUŠEK: Visual C++ 6 0 vývojové prostøedí 9

dat mezi obalovou tøídou a samotým dialogem Také je ukázáa možost tvorby aplikace bez hlavího oka (místo hlavího oka je použit dialog) Nakoec jsou popsáy a pøedvedey stadardí dialogy typu: otevøít soubor, uložit soubor, výbìr barvy, výbìr písma, vzhled stráky, tisk, astaveí tisku a hledáí èi ahrazováí slov Tato kapitola je završea tvorbou rozsáhlejší aplikace, kterou je textový editor Teto editor podporuje práci se soubory, použití schráky a hledáí slov v editovaém textu 10 D MATOUŠEK: Visual C++ 6 0 vývojové prostøedí A