Dove è un buon posto per iniziare la programmazione di interfacce grafiche per windows?[chiuso]

StackOverflow https://stackoverflow.com/questions/4347

  •  08-06-2019
  •  | 
  •  

Domanda

Ho esperienza di scrittura console di rete e di applicazioni client/server in C e C++, ma non so nulla sull'utilizzo di win32 visual API, MFC, Qt, wxWidgets, etc.Dove è un buon posto per iniziare, e quale metodo devo specializzarsi in, in modo da essere preparati per il futuro e robusto?

È stato utile?

Soluzione

Questo è un piuttosto ampia domanda, come la programmazione di applicazioni GUI di Windows può essere fatto in tanti modi.

Ci sono due parti principali per lo sviluppo di qualsiasi applicazione GUI:il lingua e il API/quadro.Considerando che tu sei interessato a imparare a costruire GUI di Windows apps, la lingua non è davvero un punto di messa a fuoco per voi.Quindi, si dovrebbe scegliere una lingua che già si conoscono e lavorano con un quadro o API che possono essere sfruttati dalla lingua che avete scelto.

Se si desidera utilizzare C siete molto limitate a trattare con l'API Win32 te stesso, nel qual caso la lettura Petzold o Richter vorresti essere luoghi ideali per iniziare.Win32 API può essere abbastanza scoraggiante, ma vale la pena lo sforzo di imparare (imho).Ci sono un sacco di tutorial su Win32 sul web, e c'è sempre MSDN, con un completo di riferimento e di guida per le API Win32.Assicuratevi di coprire non solo le API, ma in altri settori, quali le risorse e le finestre di dialogo come sono blocchi di costruzione per la vostra applicazione di Win32.

Se si desidera utilizzare C++ hai tutte le opzioni che si hanno quando si utilizza C e pochi altri.Mi consiglia di andare con l'API Win32 direttamente, passando, poi, ad un noto framework MFC, Qt, wxWindows o GTK in modo che si può spendere meno tempo di lavoro con il codice standard e invece concentrarsi sulla scrittura e la logica dell'applicazione.Le ultime 3 opzioni che vi ho appena elencato hanno il vantaggio di essere multi-piattaforma, in modo da non dovete preoccuparvi troppo di piattaforma di problemi specifici.Dato che hai detto di voler lavorare con Windows, assumo che tu sei appassionato di concentrarsi su questo, piuttosto che cross-platform -- in modo da andare con MFC, ma trascorrere del tempo con le API Win32 per acquisire familiarità con alcuni concetti.

Quando ha a che fare con MFC e l'API Win32, è una buona idea per cercare di ottenere una solida comprensione della terminologia prima di scrivere codice.Per esempio, è necessario capire che cosa il messaggio pompa è, e come funziona.Hai bisogno di sapere su concetti come "disegnata-proprietario controlli", e la creazione di sottoclassi.Quando si capisce di queste cose (e di più), lo troverete più facile lavorare con MFC perché utilizza simile terminologia nella sua classe interfacce (es.è necessario sapere che cosa "tradurre messaggi" significa prima di capire come e quando utilizzare PreTranslateMessage).

Si potrebbe anche usare Managed C++ per scrivere .NET applicazioni GUI, ma ho letto in un paio di posti che Managed C++ non era destinato ad essere utilizzato in questo modo.Invece dovrebbe essere usato come un gateway tra i nativi/unmanaged code e il codice gestito.Se si sta utilizzando .NET è meglio usare un .NET linguaggio come VB.NET o C# per costruire la vostra Gui.

Quindi, se si sono intenzione di utilizzare .NET, è, attualmente, la scelta del WinForms biblioteca, o WPF.Personalmente ritengo che si sarebbe perdere tempo ad imparare a costruire applicazioni WinForms dato che WPF è progettato per la sostituzione.Nel corso del tempo WPF diventerà più prevelant e Winforms sarà più probabile morire.WPF è molto più ricco set di API, e non soffre delle limitazioni che le Winforms fa.Se si sceglie questo percorso, tuttavia, sarete senza dubbio imparare XAML, che è un linguaggio di markup che spinge le applicazioni WPF.Questa tecnologia è venuta di età, e ci sono molti ottimi posti per saperne di più.Primo, ci sono siti come LearnWPF, e DrWPF quali sono alcuni davvero grandi articoli.In secondo luogo, ci sono un sacco di qualità libri sul argomento.

Quindi, per riassumere, una volta che hai scelto la tua lingua e la tecnologia, il percorso è in realtà abbastanza semplice.Basta prendere un libro o due, a leggere alcuni blog, di entrare in alcuni esempi di codice..e, cosa più importante ...scrivere il codice.Continuare a scrivere, continuare a fare errori e imparare da loro.

Come nota finale...

In altre parole, Silverlight.Se non si vuole andare MS percorso che si potrebbe dare di Adobe Flash/Flex un'occhiata.Sia Silverlight e Flash/Flex costruire RIA s.Che penso che è dove stiamo andando.Sono giorni di Ufficio, le app sono numerati

Io non sono d'accordo.Silverlight non è la stessa come WPF.Silverlight è specifico del web, e ha solo un sottoinsieme di WPF caratteristiche.Dato che la domanda chiede GUI di Windows apps, Flash/Flex Rich Internet Apps non sono davvero un giusto suggerimento.Anche io non sono d'accordo che i giorni di Applicazioni Rich Client (ad esempio office) sono numerati a tutti.

Spero che aiuta.Buona fortuna :)

Altri suggerimenti

Non so se lo chiamerei un buon posto per iniziare, ma se si vuole essere preparati per il futuro, date un'occhiata al windows presentation foundation che è costruito interamente ai fini della programmazione GUI per windows

La mia prima esperienza di scrittura di semplici applicazioni GUI per Windows con C# e Visual Studio.La GUI-interfaccia di generazione è un semplice drag and drop affare che genera scheletro metodi basati sui potenziali azioni dell'utente.Ho solo fatto abbastanza di base di programmazione con questo, ma immagino che sarebbe un ottimo posto per iniziare ad imparare le basi e si estendono a funzionalità più avanzate, come si va.

Ci sono un sacco di online Win32 tutorial:

http://www.zeusedit.com/forum/viewtopic.php?t=1218

Ci sono un sacco di compilatori per scegliere tra:

http://www.zeusedit.com/forum/viewtopic.php?t=238

Vorrei anche raccomandare di ottenere il Borland Win32 SDK documentazione in WinHelp formato file:

http://www.zeusedit.com/forum/viewtopic.php?t=7

Esso copre solo la nuda nozioni di base di Win32, ma quando avvio, questo può essere molto utile in quanto è meno scoraggiante e meno gonfio di MSDN.

Non avevo mai andare giù Silverlight, Flash/Flex o un simile percorso.Sembra bello, ma il problema principale è che il codice del motore che gira non è completamente chiusa e controllata da una singola azienda.Prendiamo, per esempio versioni a 64 bit di entrambi.Se qualche nuova piattaforma emerge, non sarà in grado di migrare il codice esistente ad esso.

Per le applicazioni business, Windows Form è molto maturo.Esso fornisce un delicato percorso di auto-generazione di un sacco per voi in permettendo un controllo preciso e rotolare il vostro proprio.Ci sono tonnellate di alta qualità di terze parti controlli e un grande corpo di esempi, documenti, etc là fuori.È difficile imbattersi in un problema che qualcun altro non ha risolto.Mi raccomando l'acquisizione di alcuni di sfondo Win32 conoscenza (ad es. Petzold) come WinForms quadro di vita su di esso.

Non ho WPF esperienza, ma dal campione apps ho visto sembra una buona scelta per le applicazioni di cui interfacce beneficiare di più grafica metafore.Quindi, se si sta facendo un app banking, probabilmente non vale la pena di design in più sopra la testa.Ma se si sta facendo, per esempio, una gestione del magazzino app potrebbe essere migliorato facendo cadere abbastanza caselle in più scomparti.

@StephenCox:risposta sbagliata alla domanda sbagliata.OP chiede di desktop, applicazioni client, e inoltre, WPF != Silverlight.

Per un semplice punto di partenza per ottenere la vostra testa intorno al "event-driven" natura fondamentalmente tutti i quadri sono creati attorno a guardare FLTK.

Qui ci sono alcune rapido avvio di video Link

Per un uso professionale, mi raccomando Qt, costoso, ma spesso vale la pena in situazioni commerciali.

Dal momento che si ha già familiarità con C e C++ vorrei raccomandare imparare a scrivere una semplice GUI di Windows app utilizzando il libro di Charles Petzold.Vi darà una comprensione fondamentale del funzionamento di Windows.È bene capire che la maggior parte tutto ciò che si vede è una finestra (un pulsante, una finestra per esempio) e che tali windows rispondere ai messaggi.Io non spendere un sacco di tempo su questo, e se non hai necessariamente bisogno di fare questo se si sta andando a scegliere di WPF.Penso solo che è bene avere una conoscenza di base di questo.

C'è stato un buon podcast di recente sul .Net Scogli "Kate Gregorio Sviluppa in C++ per la Vista!" ci suggerisce che qualcuno partendo ora non usare/imparare MFC (anche se è stato aggiornato di recente).

Come ottenere pronto per il futuro, è necessario imparare a WPF, ma non è ancora completo, quindi, a seconda del tipo di client side applicazioni che si desidera creare, si avrà probabilmente bisogno di imparare WinForms.La maggior parte della gente non stanno utilizzando WPF di sicurezza, quindi è un buon momento per iniziare ad imparare.Penso che troverete che è più facile l'utilizzo di C# per imparare invece di fare il codice gestito con il C++.

Ottenere il vostro nozioni di base il primo a destra.Miglior tutorial che ho trovato è: http://winprog.org/tutorial/start.html

Dopo di che, anche se la home page è odiosamente di cattivo gusto, il tutorial pagine sono buone, il contenuto e l'estetica: http://www.tenouk.com/cplusmfcdotnet.html

Poi, naturalmente, c'è MSDN.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top