Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

OSNOVA: a) Úvod do MS Visual Studia b) Formulářová aplikace c) Příklady formulářových aplikací Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.

Podobné prezentace


Prezentace na téma: "OSNOVA: a) Úvod do MS Visual Studia b) Formulářová aplikace c) Příklady formulářových aplikací Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače."— Transkript prezentace:

1 OSNOVA: a) Úvod do MS Visual Studia b) Formulářová aplikace c) Příklady formulářových aplikací Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST BPC2E PŘEDNÁŠKA 5

2 Úvod do MS Visual Studia (1/4) Projekt pro Windows: – hlavičkové soubory soubory xxx.h – zdrojové soubory soubory xxx.c nebo xxx.cpp – zdroje (resources) = především grafické objekty s danými vlastnostmi a chováním soubory xxx.rc ( xxx.ico )

3 Úvod do MS Visual Studia (2/4) Zdroje: – nabídky – klávesové zkratky – bitové rastry, ikony, kurzory – znakové řetězce – panely nástrojů – dialogová okna Dialogové okno: – základní objekt (každé okno je dialogové okno) – ovládací prvky v dialogovém okně jsou opět dialogová okna se speciálními vlastnostmi – platí princip nadřízený vs. podřízený dialog

4 Úvod do MS Visual Studia (3/4) Dialogové okno (resp. prvek): – vlastnosti ( properties ) – proměnné defi-nující vlastnosti okna (prvku) a události ( events ), tj. funkce vyvolané při vzniku určité události v objektu (okně), např. kliknutí myší - modalita oken - modální okno, ne- lze opustit bez za- vření (příznak stylu WS_VISIBLE nastaven) - nemodální lze kdykoli opustit (defokusovat)

5 Úvod do MS Visual Studia (4/4) Základní typy Win aplikací: – využívající MFC (Microsoft Foundation Class Library) SDI (Single-document interface) – aplikace, kdy se pracuje pouze s jedním dokumentem MDI (Multiple-document interface) – aplikace, kdy se pracuje s více dokumenty současně (např. MS Visual Studio je MDI aplikace) Aplikace na bázi dialogu – jedno dialogové okno pro jednodušší programy – využívající standardní prostředky Windows Formulářová aplikace pro Windows Kde získat MS Visual Studio Professional 2005/2008/2010/2012/2013: MSDN AA FEKT VUT v Brně

6 Formulářová aplikace (1/10) Založení projektu (MSVS 2008/2010): new project

7 Formulářová aplikace (2/10) Tvorba formuláře (úprava vlastností + vkládání ovládacích prvků do designu Form1.h[design] ) :

8 Formulářová aplikace (3/10) this->ColorBox->BackColor = system::Drawing::Color::Transparent; this->ColorBox->Controls->Add(this->RB_blue); this->ColorBox->Controls->Add(this->RB_green); this->ColorBox->Controls->Add(this->RB_red); this->ColorBox->ForeColor = system::Drawing::SystemColors::ControlText; this->ColorBox->Location = System::Drawing::Point(2, 86); this->ColorBox->Name = L"ColorBox"; this->ColorBox->Size = System::Drawing::Size(88, 100); this->ColorBox->TabIndex = 1; this->ColorBox->TabStop = false; this->ColorBox->Text = L"Color"; Automaticky vygenerovaný kód pro nastavení ovládacího prvku ve Form1.h : this reprezentuje ukazatel na tento formulář

9 Formulářová aplikace (4/10) Generování funkce pro ošetření události … private: System::Void RB_blue_Click(System::Object^ sender, System::EventArgs^ e) { this->My_text->ForeColor = System::Drawing::Color::Blue; } … ve Form1.h je vygenerována hlavička funkce události, do které lze vepsat tělo s poža- dovaným kódem

10 Formulářová aplikace (5/10) Funkce main() ve Form1.cpp #include #include "Form1.h" using namespace BPC2E_Ex112; [STAThreadAttribute] int main(array ^args) { Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault (false); // Create the main window and run it Application::Run(gcnew Form1()); return 0; } Projekt: BPC2E_Ex112

11 Formulářová aplikace (6/10) Windows Form aplikace ve MSVS2013: new project Nelze založit formulářovou aplikaci přímo, je nutné nejprve založit prázdný projekt CLR Empty Project s vhodným jménem

12 Formulářová aplikace (7/10) Pro formulářovou aplikaci je třeba přidat v Project – Add (vyvolat pravým tlačítkem): UI – Windows Form s vhodným jménem např. MyForm.h nebo Form.h

13 Formulářová aplikace (8/10) Dále je třeba doplnit MyForm.cpp o následující kód: #include "MyForm.h" using namespace System; using namespace System::Windows::Forms; [STAThread] void Main(array ^args) { Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault (false); Ex105::MyForm form; Application::Run(%form); } Podle názvu projektu a formuláře upravit.

14 Formulářová aplikace (9/10) Nastavit v Project – Properties: Linker - System

15 Formulářová aplikace (10/10) Nastavit Linker – Advanced – Entry Point na jméno startovací funkce v MyForm.cpp, např. Main

16 Příklady formulářových aplikací (1/7) Příklad 1: Vytvořte program jako formulářovou aplikaci pro jednoduchou kalkulačku – sčítání, odečítání, násobení a dělení dvou racionálních čísel. Vizuální návrh formuláře ve Form.h[design]

17 double get_A(void) { return System::Convert::ToDouble(this->text_A->Text); } double get_B(void) { return System::Convert::ToDouble(this->text_B->Text); } Příklady formulářových aplikací (2/7) Funkce pro načtení textu z TextBoxu s konverzí na double volání konverzní metody ukazatel na tento formulář ovládací prvek formuláře TextBox pojmenovaný text_B proměnná (člen) TextBoxu

18 private: System::Void bt_plus_Click(System::Object^ sender, System::EventArgs^ e) { this->Res->Text = System::Convert::ToString(get_A()+get_B()); } … private: System::Void bt_div_Click(System::Object^ sender, System::EventArgs^ e) { this->Res->Text = System::Convert::ToString(get_A()/get_B()); } Příklady formulářových aplikací (3/7) Ošetření událostí – kliknutí na jednotlivá tlačítka metoda třídy System ukazatel na tento formulář volání konverzní metody volání funkcí pro čtení vstupů Projekt: BPC2E_Ex113 třída System

19 Příklady formulářových aplikací (4/7) Příklad 2:Vytvořte formulářový program pro jednoduchou databázi počítačů (položky: výrobce, cena a velikost paměti) se záznam až 20ti počítačů s dynamickým přístupem. Vizuální návrh formuláře

20 #include #include "stdafx.h" typedef struct t_pc { char prod[ 20]; // name of the producer int price; // price of the computer float mem; // RAM capacity in GB } a_pc; void add(char* _prod, int _price, float _mem); // adding new computer void sort(void); // sorting according to the price t_pc* get_fwd(void); // point out to the next computer t_pc* get_bwd(void); // point out to the prev. computer int show_price(void);// get price of an added pc int show_cheap(void);// get price of the cheapest pc Příklady formulářových aplikací (5/7) Sestavení vlastní knihovny funkci pocitac.h

21 #include #include "pocitac.h"// definition of the struct t_pc t_pc *katalog[20]; // array of pointers to computers int index=0; // first free position in the katalog int ptr=index-1; // pointer to a pc displayed in edits void add(char* _prod, int _price, float _mem) { t_pc *my_pc; my_pc = (t_pc*) malloc(sizeof(t_pc)); strcpy(my_pc->prod, _prod); my_pc->price = _price; my_pc->mem = _mem; katalog[ptr=index++] = my_pc; } Příklady formulářových aplikací (6/7) Deklarace pole ukazatelů na záznamy + příklad funkce add() v pocitac.cpp

22 #pragma once #include "pocitac.h" using namespace System::Runtime::InteropServices; namespace BPC2E_Ex114 { …. private: System::Void AddBtn_Click(System::Object^ sender, System::EventArgs^ e) { add((char*)Marshal::StringToHGlobalAnsi(ProdEdit- >Text).ToPointer(), System::Convert::ToInt32(PriceEdit- >Text), System::Convert::ToDouble(MemEdit->Text)); ShowLbl->Text = System::Convert::ToString(show_price()); } Příklady formulářových aplikací (7/7) Přilinkování knihovny a ošetření události stisku tlačítka Add ve Form1.h volání konverzní metody VisualString => *char Projekt: BPC2E_Ex114

23 Téma následující přednášky – Grafika pro Windows ve MS Visual Studiu DĚKUJI ZA POZORNOST


Stáhnout ppt "OSNOVA: a) Úvod do MS Visual Studia b) Formulářová aplikace c) Příklady formulářových aplikací Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače."

Podobné prezentace


Reklamy Google