GUI ve Win32API a MFC I KIV / WIN



Podobné dokumenty
Dělení a vlastnosti komponent

Programy pro OS Windows

Dialogy a základy GUI pro.net KIV / WIN

Projektová dokumentace GED 2006

Asistivní technologie a dohledové systémy Dyslexie čtení pomocí okénka

Reliance 3 design OBSAH

ČÁST 1. Základy 32bitového programování ve Windows

Dotyková obrázovká v prográmu TRIFID

Obsah. 1 Úvod do Visia Práce se soubory 47. Předmluva 11 Typografická konvence použitá v knize 13

Předmluva 11 Typografická konvence použitá v knize Úvod do Excelu

Prostředí Microstationu a jeho nastavení. Nastavení výkresu

Uživatelský manuál aplikace. Dental MAXweb

BALISTICKÝ MĚŘICÍ SYSTÉM

Projekt do předmětu PAS. Textový editor

Konvertor diakritiky 3. Instalace

8. OKNA 73. obr. 1 Roletové menu "Okna"

Dotyková obrázovká v prográmu TRIFID

Pro správné zobrazení mapové aplikace je potřeba mít nainstalovaný zásuvný modul Flash Adobe Player.

Hydroprojekt CZ a.s. WINPLAN systém programů pro projektování vodohospodářských liniových staveb. HYDRONet 3. Modul SITUACE

Dotykova obrazovka v programu TRIFID

PALSTAT s.r.o. systémy řízení jakosti PALSTAT CAQ verze Výstupní kontrola 07.1/ Obsah

Evidence požadavků uživatelů bytů a nebytových prostor

Vizualizace a evidence výroby a prostojů

Popis rozšířujících funkcí JScriptu

Odpadové hospodářství v ORP Ústí nad Labem

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

Rychlá navigace Prolínání vrstev

Ovládání TV platformy a funkce Chytrá TV

ZŠ ÚnO, Bratří Čapků 1332

Uživatelská příručka ISKP14+ pro Integrované nástroje: Žádost o podporu strategie ITI/IPRÚ

Školící dokumentace administrátorů IS KRIZKOM (úroveň ÚSÚ) role ( administrátor )

C++: Můj první program pro Windows

NÁVOD KE SLUŽBĚ IPTV M.NET TV

Agentura ochrany přírody a krajiny ČR Odbor vývoje a správy aplikací

KOMPLEXNÍ VZDĚLÁVÁNÍ KATEDRA STROJNÍ SPŠSE a VOŠ LIBEREC

Úvod do MS Access. Modelování v řízení. Ing. Petr Kalčev

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

Doplňující pokyny pro vyplnění žádosti o podporu v rámci výzvy 04_16_010

ERP informační systém

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

NOVINKY v PROGRAMU DOCHÁZKA ADS

K 2 - Základy zpracování textu

Zpravodaj. Uživatelská příručka. Verze

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

úvod vjj 1

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

PALSTAT s.r.o. systémy řízení jakosti PALSTAT CAQ verze Kontakty 08/ Obsah

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc.

Uživatelský manuál. Připojení měřící stanice A3200 k aplikaci DDS2000

Desktopová aplikace pro tvorbu kartografických výstupů

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Osnova kurzu OBSLUHA PC ZÁKLADNÍ ZNALOSTI. pilotního projektu v rámci I. Etapy realizace SIPVZ

Hlavní okno aplikace

Kapitola 1: Co je Delphi 19. Překlad projektu 23

Úvod. Program ZK KASA EET. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu

Microsoft Word 2010 prostředí MS Wordu, práce se souborem

METODICKÝ POKYN PRÁCE S MS PowerPoint - POKROČILÍ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

Studijní skupiny. 1. Spuštění modulu Studijní skupiny

Základy práce na PC. Ing. Jan Roubíček

Alcohol Meter - uživatelská příručka

Cvičení 6 PARAMETRICKÉ 3D MODELOVÁNÍ TVORBA VÝKRESU OBROBKU Inventor Professional 2012

Doplňující pokyny pro vyplnění žádosti o podporu v rámci výzvy 04_16_028

Postupy práce se šablonami IS MPP

Obsah. Předmluva 15 KAPITOLA 1 17 KAPITOLA 2 39

SkiJo podpora pro specifikaci výrobků a generování tabulek výrobků

Školící dokumentace administrátorů IS KRIZKOM (úroveň KRAJ) (role manager, administrátor )

Synco living. Vytápění Uvedení do provozu. Strana1/28 Michal Bassy - Srpen 2008 Srpen 2008

Mapová aplikace HZS Ústeckého kraje

Word Lekce III. a IV.

Popis obsahu a návod k používání mapové aplikace Stav pokrytí NGA v ČR

SLEDOVÁNÍ VÝKONŮ. Uživatelská dokumentace. Verze: 1.0 Datum: Listopad 2011

Popis programu EnicomD

Základy práce s aplikací ecba / ESOP

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN BASIC

Více než 60 novinek, změn a vylepšení

43 HTML šablony. Záložka Šablony v systému

Nápověda aplikace Patron-Pro

Územní plán Ústí nad Labem

1. Začínáme s FrontPage

Uživatelský manuál. A4000 Download

ERP informační systém

WebmMenu slouží pro editaci a management položek menu. Pro další informace si prosím vyberte jedno z následujících témat:

NÁVOD KE SLUŽBĚ IPTV

Úvod 1 ČÁST 1 HTML 1 Základy HTML a kaskádových stylů 5

APS Administrator.GS

Doplňující pokyny pro vyplnění žádosti o podporu v rámci výzvy 04_17_040

6. Formátování: Formátování odstavce

Doplňující pokyny pro vyplnění žádosti o podporu v rámci výzvy 04_16_034

GIS Mikroregionu Telčsko

Hlavní okno aplikace

KNIHOVNA LETNI_CAS. edice verze 1.0. Knihovna letni_cas. Ing. Zdeněk Rozehnal MICROPEL s.r.o. 2008

verze Grafický editor PALSTAT s.r.o. systémy řízení jakosti PALSTAT CAQ 1 Obsah

Nástroj PanelMaker a PanelSIM

Možnosti tisku v MarushkaDesignu

FUNKČNÍ KONCEPT WEBOVÉHO ROZHRANÍ PRO ZPRACOVÁNÍ ENTIT

Formátování pomocí stylů

1. Úvod do obsluhy AutoCADu

Úvod. OLYMPUS Stream Rychlý návod k obsluze

Transkript:

GUI ve a MFC I II

Obsah okenní třída okno styly okna okenní funkce důležité zprávy základní ovládací prvky okno z pohledu MFC 2

Vytvoření okna registrace obsluhy zpráv nepovinné pro standardní ovládací prvky okenní třída vytvoření okna spuštění smyčky zpráv reakce na vybrané zprávy 3

Okenní třída určuje některé aspekty chování okna menu kurzor (předdefinované standardní) ikona (předdefinované standardní) pozadí (předdefinované standardní barvy) jméno třídy (nutná jedinečnost) obsluhu událostí registrace: před vytvořením okna struktura WNDCLASSEX RegisterClassEx ukončení platnosti: UnregisterClass 4

Okenní třída: Rozsah působnosti systémové třídy třídy pro základní ovládací prvky vytvořeny systémem dostupné v každém procesu globální třídy aplikace dostupné v každém modulu aplikace použití podobné systémové třídě: registry vhodné explicitní ukončení platnosti lokální třídy aplikace dostupné pouze v modulu, který je vytvořil rušeny automaticky po uzavření modulu 5

Okno nejobecnější stavební prvek GUI chování okna definováno styly okenní třídy a okna okenní funkcí identifikace a adresace okna handle HWND: užito funkcemi identifikátor ovládacího prvku titulek okna: FindWindow 6

Okno: Součásti okna klientská část vnitřní oblast okna obsahuje zpravidla ovládací prvky cíl pro vykreslování klientská oblast standardní součásti okna neklientská část zbylá oblast okna title bar, menu bar, rámeček, atd. lze kreslit: viz uživatelské prvky v titulku rozměry standardních částí okna GetSystemMetrics 7

Okno: Child Onwed okno child okno nemůže samostatně existovat klientská oblast rodičovského okna může postoupit zprávu svému rodiči zpravidla označeno číslem dialog: odkaz na okna dle identifikátoru užití: ovládací prvky owned okno zpravidla samostatné okno vlastník nemůže překrýt vlastněné okno 8

Okno: Aplikační Desktop aplikační okno top-level okno apliakce nemusí být viditelné: aplikace v trayi nepovinné pro dialogové aplikace možnost nalézt dané okno: FindWindow procházet okna: EnumWindows desktop: pracovní plocha GetDesktopWindow užití: screenshot nelze kreslit 9

Okno: Focus Default pouze jeden prvek z dialogu/okna focus označení cíle uživatelského vstupu možnost přepínání klávesou <tab> pouze dialogy default standardně předvolený prvek (dialogy) reakce na klávesy <enter>, <esc> 10

Okno: Operace I většina operací: dle hierarchie změna rodiče ovlivní potomka vytvoření: okno nebo ovládací prvek top-level: součást hlavního programu child: reakce na WM_CREATE CreateWindow / CreateWindowEx rozšíření sady stylů o _EX_ zrušení okna indikováno zprávou WM_DESTROY nikdy neposílat zprávu přímo DestroyWindow 11

Okno: Operace II změna vzhledu pozice, umístění: MoveWindow viditelnosti: ShowWindow zakázání/povolení okna: EnableWindow zakázané okno nepřijímá vstup změna informace titulek: SetWindowText další nastavení: SetWindowLong též nastavení uživatelských dat: 32-bitové číslo užití: dodatečné informace pro MDI okno 12

Okno: Významné Styly vzhled WS_VISIBLE: viditelné okno WS_DISABLED: zakázané okno WS_BORDER: ohraničení slabou čarou nastavení WS_CHILD: child okno WS_HSCROLL: horizontální scrollbar WS_GROUP: skupina child oken první okno ze skupiny: WS_GROUP následující po posledním: WS_GROUP WS_TABSTOP: změna focusu tabulátorem pořadí přepínání dáno pořadím vytváření 13

Okno: Významné rozšířující styly WS_EX_MDICHILD MDIChild okénko WS_EX_TOOLWINDOW owned okénko se zůženým title barem WS_EX_TOPMOST okno, které zůstane vždy na vrchu WS_EX_LAYERED předpříprava obsahu: plynulejší vykreslování podpora průhlednosti: průchod zpráv myši 14

Okenní funkce I účel: obsluha zpráv parametry handle okna, které zprávu vyslalo kód zprávy parametry zprávy 2 parametry: 32-bitové číslo interpretace dle kódu zprávy návratová hodnota dle druhu zprávy výsledek obsluhy zprávy: viz WM_CREATE oznámení o obsloužení zprávy: viz WM_PAINT požadovaná hodnota: viz WM_GETICON 15

Okenní funkce II manuální vyvolání okenní funkce nevhodné funkci volat přímo užití: změna chování okna CallWindowProc obsluha neodchycených zpráv implicitní chování okna nutné pro všechny neobsloužené zprávy vhodné pro většinu obsloužených zpráv DefWindowProc subclassing podstrčení vlastní okenní funkce oknu 16

Okenní funkce: Příklad LRESULT CALLBACK MyWndProc( HWND hwnd, /* původce zprávy */ UINT umsg, /* kód zprávy */ WPARAM wpar, /* 1. parametr */ LPARAM lpar) /* 2. parametr */ { switch (umsg) { case WM_CREATE: /* vytvoření okna */ /* reakce na zprávu */ return 0; case WM_DESTROY: /* uzavření okna */ PostQuitMessage(0); return 0; } return DefWindowProc(hwnd,uMsg,wPar,lPar); } 17

SDI MDI Aplikace SDI jedno okno jeden dokument viz Notepad MDI Child okno Frame okno jedno okno více dokumentů okno MDICLIENT třídy správa MDIChild oken správa Window podmenu MDI child okno vytvoření, ovládání a zrušení: WM_MDI* zprávy MDICLIENT oknu nezpracované zprávy: speciální funkce MDIChild okno MDICLIENT Frame okno 18

Přehled zpráv: Správa okna I WM_CREATE reakce na vytvoření okna vhodné volat implicitní obsluhu užití úprava vlastností okna vytvoření child oken WM_DESTROY posláno těsně před zrušením okna child okna stále existují užití dealokace alokovaných zdrojů uzavření aplikace: PostQuitMessage 19

Přehled zpráv: Správa okna II WM_CLOSE požadavek na zrušení okna/aplikace nezavolání implicitní obsluhy: odmítnutí užití blokování uzavření okna/dialogu dotázání se uživatele uložení dat WM_QUIT ukončení smyčky zpráv nezpracovává se smyčka skončí dříve 20

Přehled zpráv: Správa okna III WM_SIZE oznámení o změně velikosti okna způsobu zobrazení okna užití změna pozice/velikosti child ovládacích prvku změna parametrů (OpenGL/DirectX) vhodné překreslit okno implicitně: překreslována pouze změněná část InvalidateRect není vytvářeno přímo reakce na WM_WINDOWPOSCHANGED efektivnější: bez vysílání WM_SIZE 21

Přehled zpráv: Vykreslování WM_PAINT vykreslení klientské části okna manuální vyvolání: RedrawWindow oblasti pro překreslení: GetUpdateRect úspora času: vykreslení pouze omezené oblasti po vykreslení: nutno zpoplatnit oblast implicitní obsluha nebo ValidateRect nezpoplatnění oblasti: opětovné WM_PAINT neklientská část: WM_NCPAINT WM_ERASEBKGND žádost na vymazání klientské oblasti původce problikávání při překreslování 22

Přehled zpráv: Další WM_COMMAND akce iniciovaná uživatelem ohlášení změny stavu v child ovládacím prvku výběru položky z menu, stisk tlačítka WM_NOTIFY oznámení o operaci / akci uživatele identifikace události ve wparam: NM_* WM_GETMINMAXINFO požadavek na informaci o rozměrech okna užití: omezení max./min. rozměrů okna 23

Ovládací prvky I ovládací prvek: předdefinovaná třída možnost změny vzhledu bez změny třídy nastavování a operace zpráva: SendMessage pojmenování: ZkratkaPrvkuM_Operace makra: zpravidla zpráva + konverze dat pojmenování: NázevPrvku_Operace speciální funkce API fonty: implicitně systémové nastavení: WM_SETFONT dialogy: součást definice dialogu 24

Ovládací prvky II oznámení o změně zasíláno rodiči výběr z menu: WM_COMMAND oznámení o události: WM_NOTIFY speciální situace vykreslení owner-drawn: WM_DRAWITEM posun scrollbaru, slideru: WM_HSCROLL identifikátory zpráv: PREFIX_NÁZEV PREFIX: dle ovládacího prvku poslední znak: identifikace typu zprávy žádný nebo 'M': ovládání okenní zprávou 'N': oznámení okenní zprávou pro WM_NOTIFY 'S': styl okna pro CreateWindow 25

Ovládací prvky: Statické prvky neaktivní prvky bez reakce na uživatelův vstup okenní třída: "Static" typy obrázek textová informace rámeček bez textové informace užití organizace plochy seskupení ovládacích prvků 26

Ovládací prvky: Tlačítko I okenní třída: "Button" push button dva stavy: stlačený / nestlačený užití: spuštění akce tlačítkem specifikováno stylem: BS_PUSHBUTTON default tlačítko: BS_DEFPUSHBUTTON check box podpora třetího stavu užití: výběr možnosti specifikováno stylem: BS_CHECKBOX 27

Ovládací prvky: Tlačítko II radio button dva stavy: zaškrtlý / nezašktlý automatické přepínánív rámci skupiny užití: výběr jedné možnosti z specifikováno stylem BS_RADIOBUTTON group box užití visuální rozdělení plochy seskupení ovládacích prvků bez stavů podobné statickému, ale s popiskem specifikováno stylem BS_GROUPBOX 28

Ovládací prvky: Edit Box textový vstup uživatele možnost víceřádkového vstupu omezení počtu znaků: EM_SETLIMITTEXT oznámení o dosažení maxima: EN_MAXTEXT výběru oblasti řetězce podpora pro práci s clipboardem zakrytí obsahu (heslo): ES_PASSWORD implicitně: '*', ale možnost změny podpory pro vrácení změny: EM_UNDO okenní třída: "Edit" 29

Ovládací prvky: List Box jednosloupcový výběr z položek výběr více položek přiřazení hodnoty položce: 16-bitové číslo kreslení vlastních položek: LBS_OWNERDRAW možnost určení vlastní výšky položky okenní třída: "ListBox" stavy položek selected item vybraná položka(ky) focused item cílová položka pro vstup 30

Ovládací prvky: Combo Box vyskakovací výběr detekce zvolení, uzavření a zrušení výběru kreslení vlastních položek: viz ListBox okenní třída: "ComboBox" typy vyskakovací s možností editace CBS_DROPDOWN vyskakovací bez editace CBS_DROPDOWNLIST jednoduchý s možností editace CBS_SIMPLE edit box + list box 31

Ovládací prvky: Scroll Bar horizontální/vertikální scroll bar okenní třída: "ScrollBar" operace reakce na akce uživatele zpráva: WM_HSCROLL / WM_VSCROLL po obsluze nutno nastavit pozici scroll baru skrytí scrollbaru / blokace jezdece programově skrytím okna velikost jezdce > délka dráhy nastavení základních vlastností pozice jezdce: SetScrollPos parametry dráhy: SetScrollRange 32

Ovládací prvky: Rich Edit edit box s RTF podporou operace ukládání, načítání RTF změna vlastností části textu práce se schránkou okenní třída "RichEdit" (rich edit 1.0) "RichEdit20W" (rich edit 2.0) podpora pro vrácení vrácení změny: EM_REDO "RichEdit30W" (rich edit 3.0) podpora pro dělení slov a změnu měřítka 33

MFC okenní třída: viz registrace: AfxRegisterWndClass základní okno: potomek CWnd vytvoření viz : Create připojení na existující handle okna: Attach handle na okno: GetSafeHwnd / m_hwnd okno rámce: potomek CFrameWnd užití: hlavní okno aplikace mechanizmus Doc/View možnost vytvoření + nastavení z resources natažení menu, titulku a ikony: LoadFrame MFC 34

MFC: Ovládací prvky specializovaní potomci třídy CWnd static: CStatic tlačítko + specializace: CButton edit box: CEdit combo box: CComboBox list box: CListBox scroll bar: CScrollBar rich edit: CRichEdit inicializace před první užitím: AfxInitRichEdit MFC 35

Pokračování příště děkuji za pozornost příště GUI ve a MFC II nezapomeňte nakrmit tygry 36