6. diel - Tlač formuláre a ovládacích prvkov Windows Forms
Blížime sa k záveru našej ukážky, doplníme MyClass2 funkcií KresliLine.
//MyClass2.cpp void Kreslivbshape::KresliLine(Graphics^ gr, int xx , int yy , int count) { int x1,x2,y1,y2 = 0; LineShape ^mlineShape = nullptr; for (int i = 0; i < count; i++) { mlineShape = lineShape[i]; x1 = mlineShape->X1 + xx; x2 = mlineShape->X2 + xx; y1 = mlineShape->Y1 + yy; y2 = mlineShape->Y2 + yy; gr->Clip = gcnew Region(recMax); Pen^ pen = gcnew Pen(mlineShape->BorderColor,(float) mlineShape->BorderWidth); pen->DashStyle = mlineShape->BorderStyle; gr->DrawLine(pen, x1, y1, x2, y2); delete pen; gr->ResetClip(); } lineShape->Clear(); mlineShape = nullptr; };//Kresli lineShape
Pre poriadok musíme napísať prázdne funkcie pre OvalShape a
RectangleShape. Kód v týchto funkciách nie je
predmetom tejto ukážky.
//MyClass2.cpp void Kreslivbshape::KresliOval(Graphics^ graphics,int xx , int yy, int count) { //není v této ukázce //.......nějaký kód }; void Kreslivbshape::KresliRectangle(Graphics^ graphics, int xx , int yy ,int count) { //není v této ukázce //......nějaký kód };
Testovanie nášho výtvoru
Nakoniec nám zostáva otestovanie nášho programu. Prejdeme vo VS do správcu konfigurácie a nastavíme aktívnu konfiguráciu na Release u FormPrintDemo.exe, MyClass1.dll a MyClass2.dll.
Po zostavení sa v okne výstupu objavia:
Sestavení bylo úspěšně dokončeno. Nové sestavení všeho: 3 úspěšně, 0 se nezdařilo, 0 přeskočeno
Doplníme AssemblyInfo.css o názov a ostatné assembly, to isté urobíme
pre MyClass1 assemblyInfo.cs. Do triedy MyClass2.dll pridáme Assembly Resource
File (.resx) s Názov MyClass2. V prieskumníkovi riešení v sekcii Source
Files (MyClass2) je nový súbor AssemblyInfo.cpp, ktorý doplníme ako
predošlé dva súbory
assemblyInfo.cs. Znovu vykonáme zostavenie a otestujeme, či sme neurobili
nejakú chybu.
Microsoft FxCop 10.0
Tento nástroj nám vykonáva statickú analýzu kódu. Poskytuje stovky pravidiel, ktoré vykonávajú rôzne typy analýz. Vo vyšších verziách VS je priamo súčasťou VS. Môžeme si tento nástroj nainštalovať z Microsoft windows SDK
Inštaláciu FxCopu vykonáme podľa pokynov na inštaláciu. Odporúčam tento nástroj používať. Ak načítame naše súbory (FormPrintDemo.exe, MyClass1.dll a MyClass2.dll) do FxCopu (viď obrázok), neprestaneme sa čudovať.
Opravíme červeno zafarbené chybové hlášky mimo:
- Assemblies should have valid strong names, myclass1.dll
- Assemblies should have valid strong names, myclass2.dll
- Assemblies should have valid strong names, FormPrintDemo.exe
Tu odporúčam sa riadiť sedliackym rozumom pre žlté odporúčania. Nakoniec podpíšeme zostavenie vygenerovaným silným menom pomocou utility sn.exe. Po podpísaní jednotlivých tried budú uvedené 3 chybové položky zlikvidované.
Vytvoríme inštalačné súbory a máme hotovo.
Záver
V tomto tutoriále som sa pokúsil ukázať ako tlačiť pod .NET. Neviem, či sa mi to podarilo, ťažko sa píše pre poslucháčov, kde nepoznáte šírku ich vedomostí.
Niekoľko funkcií navyše
Ak vytvárate Demo verziu, môžete vykresľovať na formulár alebo užívateľské prvky rôzny farebný text.
#if(DEBUG == true) /// <summary> /// Při demoverzi píše text pro tisk na formulář /// </summary> internal class DemoVerze { private List<Color> color = new List<Color>(11) ; internal DemoVerze() { color.Add(Color.Azure); color.Add(Color.LightCyan); color.Add(Color.Violet); color.Add(Color.LightGray); color.Add(Color.LightGreen); color.Add(Color.LightPink); color.Add(Color.LightSalmon); color.Add(Color.LightYellow); color.Add(Color.LightSteelBlue); color.Add(Color.LightGoldenrodYellow); } internal void DrawRectanglesForm(Control controls, Graphics g) { Point pp = new Point(0, 0); List<Point> point = new List<Point>(8) { pp, pp, pp, pp,pp,pp,pp,pp }; point[0] = new Point(230, 230); point[1] = new Point(600, 230); point[2] = new Point(230, 600); point[3] = new Point(600, 600); point[4] = new Point(970, 230); point[5] = new Point(970, 600); point[6] = new Point(230, 940); point[7] = new Point(600, 940); // Vytvoření per, štětců a písem pro kresbu using (Font captionFont = new Font("Arial", 26)) { // Nastavení matice tak, aby se následující // kresby objevily ve středu PictureBoxu g.Clip = new Region(RealPageSettingsBounds); for (int j = 0; j < 8; j++) { g.TranslateTransform(point[j].X, point[j].Y, MatrixOrder.Prepend); // Režim vyhlazování nastavíme na HighQuality, // aby se nakreslily čisté linie g.SmoothingMode = SmoothingMode.HighQuality; // Nakreslení 10 obdélníků s nápisem a // pokaždé otočíme matici o 36 stupňů for (int i = 0; i < 10; i++) { using (Brush blackBrush = new SolidBrush(color[i])) { g.RotateTransform(36, MatrixOrder.Prepend); g.DrawString(" Demo ", captionFont, blackBrush, 25, 25); } } g.ResetTransform(); } // Vrátíme transformaci do původního stavu g.ResetClip(); g.SmoothingMode = SmoothingMode.Default; } } #endif
Dôležité
Ak používate VS 2013, je potrebné doinštalovať VB-PoverPack a dorobiť referencie na toto assemblies.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 139x (5.66 MB)
Aplikácia je vrátane zdrojových kódov v jazyku C#