Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Historie vývoje GUI (5): systémy Windows 1.0 a GEM

mikro
mikro (neregistrovaný) ---.rev.bonet.sk
12. 10. 2010 9:25 Nový

Rucna obsluha udalosti

celé vlákno

Aby sme boli fer, tak to, ze sa pri programovani pod Windows museli udalosti spracovavat rucne zase nie je az tak nieco tragicke/vynimocne -- programovanie poD GEMom je prakticky o tom istom, jedna while( !quit ) slucka a v nej citanie sprav a rucna obsluha, vratane kodu na prekreslovanie / prekryvanie obsahu.

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.seznam.cz
12. 10. 2010 10:13 Nový

Re: Rucna obsluha udalosti

celé vlákno

Message pump píšu do dnes ručně. Zvlášť u malých projektů, kde těch zpráv, které obsluhuju je tak pět na každé okno, na což se nevyplatí nasazovat nějaký šílený framework.

Objektové programování v tom hodně pomáhá, právě třeba v možnosti routovat zprávy na příslušné instance oken (objektů). Nicméně každé okno má funkci

LRESULT winProc(UINT msg, WPARAM wParam, LPARAM lParam);

Jo, chybí tam HWND hWnd, protože to zpracuje už ten router. Dědičnost, volání předka, a podobné vymožnosti C++ pak umožňují krásně dědit takto napsané ovládací prvky - prostě prostým "naháknutím se" na tento jednoduchý dispatcher.

Pavel Tišnovský aura:98
12. 10. 2010 11:35 Nový

Re: Rucna obsluha udalosti

celé vlákno

Jasne, pro aplikace, ktere maji jednoduche GUI je mozne WinAPI pouzivat primo (taky jsem si s tim uzil sve, ale to bylo jeste ciste Cecko), ale napriklad pro slozitejsi dialog to vede ke kodu s milionem vetvi ve switch, coz neni moc prehledne.

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.seznam.cz
12. 10. 2010 11:57 Nový

Re: Rucna obsluha udalosti

celé vlákno

Zase bych to s těma milionama nepřeháněl. Chce to nějakou strukturu :-)

Je fakt, že implementovat v dialogu takový ListView nebo TreeView, to je něco, tam ani tak nejde o switche, ale i o vlastní vkládání prvků přes zprávy LVITEM, TVITEM, HTREEITEM, atd.

Ty switche jsou důsledkem toho, že Windows pojaly parent okno (dialog) zároveň jako "model" (v architektuře MVC) - takže ty hromady notifikací, změn v controlerech zasílaných na parent okno je hafo. Nejprve je tedy potřeba všechny zprávy směřující ze všech ovládacích prvnků přesměrovat do patřičných modelů... a těch větví tam už zůstane minimum.

Tohle je bohužel nedomyšlenost celého konceptu vyžadující různé hacky. Tak například model je spojen s view, ale požadavky view na model vyřizuje parent okno, který kolikrát nemusí o nějakém modelu nic vědět. MFC ukazuje řešení v podobě "reflected" zpráv, kdy parent okno reflektuje tyhle zprávy zpět do poděděného ovládacího prvku, jako jejich výchozí implementaci (pokud nejsou zpracovány dříve). Předpokládá, že specializovaná verze controleru si to dál přeroutuje na model.

Jiné řešení je napsat si ovládací prvky sám :-)

D.A. Tiger aura:66
12. 10. 2010 12:58 Nový

Re: Rucna obsluha udalosti

celé vlákno

Tohle podle mě dobře řeší systém zpráv Fox Toolkitu. Přijde mě to z hlediska uživatele knihovny jednodušší a flexibilnější

jarous
jarous (neregistrovaný) 194.228.48.---
14. 10. 2010 8:07 Nový

windows TNT

celé vlákno

Když tady byla zmínka o "Ventura Publisher" a GEM, tak jsem si vzpomněl na něco podobného s Windows. Setkal jsem se s DOSovými aplikacemi, které používaly jakousi knihovnu, která měla skoro stejné API jako Windows, ale linkovala se přímo k DOSovému programu. Viděl jsem v tom i nějaké aplikace. Jeden texťák ve kterém se v dalších oknech otvírala kalkulačka a jednoduchý file manager. Vipadalo to úplně jako Windows. Dokonce jsme v tom také chtěli dělat nějaké softy, ale sešlo z toho. Pamatuji si, že se to jmenovalo WinTNT, nebo tak nějak.
Ví o těchto "pseudo windows" někdo něco bližšího ?

Petr Baláš
Petr Baláš (neregistrovaný) ---.petrbalas.cz
17. 10. 2010 20:21 Nový

Re: windows TNT

celé vlákno

TCXL ?
Jeden zdroják šlo přeložit jako DOS i jako Windows program ale já jsem v tom psal jen DOS programy.
Možná bych to ještě našel - kdyžtak jmeno at prijmeni dot cz

Zasílat nově přidané příspěvky e-mailem