Unde este un loc bun pentru a începe programarea GUI-urilor pentru ferestre?

Am experienta de scriere a consolei si a aplicatiilor client / server de retea in C si C ++, dar stiu aproape nimic despre folosirea API-ului vizual win32, MFC, Qt, wxWidgets, etc. Unde este un loc bun pentru a incepe, specializați, astfel încât să fie gata și robustă în viitor?

0
fr hi bn

9 răspunsuri

Prima mea experiență de scriere a aplicațiilor GUI simple pentru Windows a fost cu C# și Visual Studio. Interfața GUI-building este o soluție simplă de tragere și plasare care generează metode de schelet pe baza acțiunilor potențiale ale utilizatorilor. Am făcut doar o programare destul de bază cu acest lucru, dar îmi imaginez că ar fi un loc excelent pentru a începe să înveți elementele de bază și să vă extindem în capabilitățile mai avansate pe măsură ce mergeți.

0
adăugat

Nu știu dacă aș spune că este un loc bun pentru a începe, dar dacă doriți să fiți pregătiți în viitor, aruncați o privire la fundație prezentare ferestre , care este construită în întregime în scopul programării GUI-urilor pentru ferestre

0
adăugat

Deoarece deja cunoașteți C și C ++, aș recomanda să învățați cum să scrieți o aplicație simplă Windows GUI folosind cartea lui Charles Petzold. Acesta vă va oferi o înțelegere fundamentală a modului în care funcționează Windows. Este bine să înțelegeți că tot ceea ce vedeți este o fereastră (de exemplu, un buton este o fereastră) și că aceste ferestre răspund la mesaje. Totuși, nu aș petrece mult timp în această privință și nu trebuie să faceți acest lucru în mod necesar dacă doriți să alegeți WPF. Cred că e bine să ai o înțelegere de bază a acestui lucru.

A existat un podcast bun recent pe .Net Rocks numit "Kate Gregory se dezvoltă în C ++ pentru Vista! " acolo, ea recomandă ca cineva care începe acum să nu folosească / să învețe MFC (chiar dacă a fost recent actualizat).

În ceea ce privește pregătirea pentru viitor, trebuie să învățați WPF, dar încă nu este completă, deci în funcție de tipurile de aplicații de pe partea clientului pe care doriți să le creați, va trebui probabil să învățați WinForms. Majoritatea oamenilor nu utilizează încă WPF, deci este un moment potrivit să începeți să învățați. Cred că veți găsi mai ușor folosind C# pentru ao învăța în loc să faci cod gestionat cu C ++.

0
adăugat

Pentru aplicațiile de afaceri, Windows Forms este foarte matur. Acesta oferă o cale blandă de la auto-generatoare de mult pentru tine în a permite controlul cu granulație fină și rulare propria dvs. Există tone de controale terță parte de înaltă calitate și un număr mare de exemple, documente, etc acolo. Este greu să fugi într-o problemă pe care altcineva nu a rezolvat-o. Vă recomandăm foarte mult să obțineți cunoștințe de bază despre Win32 (de exemplu Petzold ) pe măsură ce trăiește cadrul WinForms de sus.

Nu am experiență WPF, dar din exemplele de aplicații pe care le-am văzut arată o alegere bună pentru aplicațiile ale căror interfețe ar beneficia de mai multe metafore grafice. Deci, dacă faci o aplicație bancară, probabil că nu merită costul de proiectare suplimentar. Dar dacă faceți, să zicem, o aplicație de gestionare a depozitului, aceasta ar putea fi îmbunătățită prin scăderea cutiilor frumoase în coșuri frumoase.

@ StephenCox: răspuns greșit la întrebarea greșită. OP cere întrebări despre aplicațiile desktop client și, în plus, WPF! = Silverlight.

0
adăugat

Obțineți-vă principiile de bază mai întâi. Cel mai bun tutorial pe care l-am găsit este: http://winprog.org/tutorial/start.html

După aceea, deși pagina de pornire este dezgustătoare, paginile de tutorial sunt bune în conținut și estetică: http: // www .tenouk.com / cplusmfcdotnet.html

Apoi, desigur, există MSDN .

0
adăugat

Nu aș merge niciodată în jos Silverlight, Flash / Flex sau orice alt traseu similar. Arată frumos, dar problema principală este că codul motorului care rulează este complet închis și controlat de o singură companie. Luați, de exemplu, versiuni pe 64 de biți ale celor două. Dacă apare o nouă platformă, nu veți putea migra codul existent la acesta.

0
adăugat
Cutia închisă și compania unică nu sunt deloc deloc. Indiferent de caseta în care lucrați, încă riscați să nu puteți să vă porniți niciodată codul. FUD nejustificat nu este un argument pentru evitarea Silverlight sau Flash.
adăugat autor OJ., sursa

Aceasta este o întrebare destul de largă, deoarece programele de programare GUI în Windows pot fi realizate în multe feluri.

Există două părți principale pentru dezvoltarea oricărei aplicații GUI: limbă și API / cadru . Având în vedere că sunteți interesat să învățați să construiți aplicații Windows GUI, limba nu este un punct de interes pentru dvs. Prin urmare, ar trebui să alegeți o limbă pe care o cunoașteți deja și să lucrați cu un cadru sau un API care poate fi valorificat de limba aleasă.

Dacă doriți să utilizați C, sunteți destul de limitat să vă ocupați de API-ul Win32, caz în care citiți Petzold sau Richter ar fi locuri excelente pentru a începe. API-ul Win32 poate fi destul de descurajant, dar merită efortul de a învăța (imho). Există o mulțime de tutoriale pe Win32 pe web, și există întotdeauna MSDN , cu o referință completă / ghid pentru Win32 API. Asigurați-vă că acoperiți nu numai API-ul, ci și alte domenii, cum ar fi resurse / dialoguri, deoarece acestea reprezintă blocuri pentru aplicația dvs. Win32.

Dacă doriți să utilizați C ++ aveți toate opțiunile pe care le aveți la utilizarea lui C plus câteva altele. Aș recomanda să mergeți direct cu API-ul Win32 și apoi să treceți la un cadru cunoscut, cum ar fi MFC, Qt, wxWindows sau GTK, astfel încât să puteți petrece mai puțin timp lucrați cu codul boilerplate și, în schimb, să vă concentrați pe scrierea logicii aplicației. Ultimele trei opțiuni pe care tocmai le-am enumerat au avantajul suplimentar de a fi cross-platform, deci nu trebuie să vă faceți griji prea multe despre problemele specifice platformei. Având în vedere că ați spus că doriți să lucrați cu Windows, vă presupun că sunteți dornici să vă concentrați mai degrabă pe această platformă decât pe platformă - așa că mergeți cu MFC, dar petreceți puțin timp cu API-ul Win32 pentru a vă familiariza cu unele dintre conceptele.

Când se ocupă de MFC și Win32 API, este o idee bună să încercați să obțineți o înțelegere solidă a terminologiei înainte de a scrie cod. De exemplu, trebuie să înțelegeți ce este pompa pentru mesaje și cum funcționează. Trebuie să știți despre concepte precum " controale elaborate de proprietar și < a href = "http://msdn.microsoft.com/en-us/library/ms997565.aspx" rel = "noreferrer"> subclasarea . Când înțelegeți aceste lucruri (și mai mult), veți găsi mai ușor să lucrați cu MFC deoarece utilizează terminologia similară în interfețele de clasă (de ex., Trebuie să știți ce înseamnă "traducerea mesajelor" înseamnă înainte de a înțelege cum și când utilizați PreTranslateMessage ).

De asemenea, ați putea folosi Gestionat C ++ pentru a scrie aplicații GUI .NET, dar am citit în câteva locuri că Gestionat C ++ nu a fost intenționat să fie folosit în acest mod. În schimb, acesta ar trebui să fie folosit ca o poartă între codul nativ / neangajat și codul gestionat. Dacă utilizați .NET este mai bine să utilizați o limbă .NET cum ar fi VB.NET sau C# pentru a vă construi GUI-urile.

Deci, dacă sunteți să folosiți .NET, aveți în prezent posibilitatea de a alege WinForms sau wpf . Personal, simt că veți pierde timpul învățând să construiți aplicații WinForms, dat fiind faptul că wpf este proiectat să o înlocuiască. În timp, wpf va deveni mai prevestitor și Winforms va pierde cel mai probabil. wpf are un set mult mai bogat API și nu suferă de multe dintre limitările pe care Winforms le face. Dacă alegeți acest traseu, cu siguranță veți fi nevoiți să învățați XAML , care este un limbaj de markup care conduce aplicații WPF. Această tehnologie se apropie de vârstă și există multe locuri excelente de învățat. În primul rând, există site-uri precum LearnWPF și DrWPF care au cateva articole foarte bune. În al doilea rând, există o mulțime de calitate cărți > pe subiect .

Deci, pentru a rezuma, odată ce ați ales limba și tehnologia, calea este de fapt destul de ușoară. Doar alegeți o carte sau două, citiți câteva bloguri, intrați în câteva mostre de cod .. și cel mai important ... scrieți cod. Păstrați scris, continuați să faceți greșeli și continuați să învățați de la ei.

Ca o notă finală ...

Cu alte cuvinte, Silverlight. Dacă nu doriți să mergeți pe ruta MS, s-ar putea să vă dați Adobe Flash / Flex o privire. Atât Silverlight, cât și Flash / Flex construiesc RIA-urile. Ceea ce cred că este locul în care ne îndreptăm. Aceste zile de aplicații Office sunt numărate

Nu sunt deloc de acord. Silverlight nu este același lucru cu WPF. Silverlight este specific pentru web și are doar un subset de caracteristici WPF. Dat fiind că întrebarea cere aplicații Windows GUI, aplicațiile Flash / Flex Rich Internet nu sunt într-adevăr o sugestie potrivită. De asemenea, nu sunt de acord că zilele de aplicații Rich Client (cum ar fi birourile) sunt numerotate deloc.

Sper ca te ajuta. Mult noroc :)

0
adăugat
Dacă doriți să utilizați API-ul Win32 din C ++, există și WTL. Consultați wtl.sourceforge.net
adăugat autor Roger Lipscombe, sursa
+1 pentru Petzold și Ritcher.
adăugat autor David Sebastian, sursa

Pentru un punct de plecare simplu pentru a vă obține capul în jurul valorii de "eveniment-condus" natura practic toate cadrele sunt create în jurul uite la FLTK .

Here are some quick starting videos Link

Pentru uz profesional aș recomanda Qt, scump, dar adesea meritat în situații comerciale.

0
adăugat

Există o mulțime de tutoriale online Win32:

1218

Există o mulțime de compilatoare pentru a alege:

238

De asemenea, vă recomandăm să obțineți documentația Borland Win32 SDK în formatul fișierului WinHelp:

7

Acesta acoperă numai noțiunile de bază ale Win32, dar la pornire, acest lucru poate fi util deoarece este mai puțin descurajator și mai puțin umflat decât MSDN.

0
adăugat