Onde é um bom lugar para começar a programar GUIs para Windows?[fechado]

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

  •  08-06-2019
  •  | 
  •  

Pergunta

Tenho experiência em escrever aplicativos cliente/servidor de console e rede em C e C++, mas não sei quase nada sobre como usar a API visual win32, MFC, Qt, wxWidgets, etc.Onde é um bom lugar para começar e em que método devo me especializar para estar pronto e robusto para o futuro?

Foi útil?

Solução

Esta é uma questão bastante ampla, já que a programação de aplicativos GUI no Windows pode ser feita de muitas maneiras.

Existem duas partes principais no desenvolvimento de qualquer aplicativo GUI:o linguagem e a API/estrutura.Considerando que você está interessado em aprender a criar aplicativos GUI do Windows, a linguagem não é realmente um ponto de foco para você.Portanto, você deve escolher uma linguagem que já conheça e trabalhar com uma estrutura ou API que possa ser aproveitada pela linguagem escolhida.

Se você deseja usar C, você está praticamente restrito a lidar com a API Win32 sozinho; nesse caso, leia Petzold ou Richter seriam ótimos lugares para começar.A API Win32 pode ser bastante assustadora, mas vale a pena o esforço para aprender (imho).Existem muitos tutoriais sobre Win32 na web e sempre há MSDN, com uma referência/guia completo para a API Win32.Certifique-se de cobrir não apenas a API, mas outras áreas, como recursos/diálogos, pois eles são blocos de construção para seu aplicativo Win32.

Se quiser usar C++, você terá todas as opções disponíveis ao usar C, além de algumas outras.Eu recomendo usar a API Win32 diretamente e, em seguida, passar para uma estrutura conhecida, como MFC, Qt, wxWindows ou GTK, para que você possa gastar menos tempo trabalhando com código padrão e, em vez disso, concentrar-se em escrever a lógica do seu aplicativo.As últimas três opções que acabei de listar têm o benefício adicional de serem multiplataforma, então você não precisa se preocupar muito com problemas específicos da plataforma.Dado que você disse que deseja trabalhar com o Windows, presumo que você esteja interessado em se concentrar nisso, em vez de em várias plataformas - então, escolha o MFC, mas passe algum tempo com a API Win32 primeiro para se familiarizar com alguns dos os conceitos.

Ao lidar com o MFC e a API Win32, é uma boa ideia tentar obter um conhecimento sólido da terminologia antes de escrever o código.Por exemplo, você precisa entender o que bomba de mensagem é e como funciona.Você precisa saber sobre conceitos como "desenhado pelo proprietário controles", e subclassificação.Quando você entender essas coisas (e muito mais), achará mais fácil trabalhar com o MFC porque ele usa terminologia semelhante em suas interfaces de classe (por exemplo,.você precisa saber o que significa "traduzir mensagens" antes de entender como e quando usar Mensagem Pré-Tradução).

Você também pode usar C++ gerenciado para escrever aplicativos GUI .NET, mas li em alguns lugares que o C++ gerenciado não foi realmente planejado para ser usado dessa maneira.Em vez disso, deve ser usado como um gateway entre o código nativo/não gerenciado e o código gerenciado.Se você estiver usando .NET, é melhor usar uma linguagem .NET como VB.NET ou C# para construir suas GUIs.

Então, se você são vai usar o .NET, atualmente você tem a opção de WinForms biblioteca, ou WPF.Pessoalmente, sinto que você estaria perdendo tempo aprendendo a criar aplicativos WinForms, visto que o WPF foi projetado para substituí-lo.Com o tempo, o WPF se tornará mais predominante e o Winforms provavelmente morrerá.O WPF possui um conjunto de APIs muito mais rico e não sofre muitas das limitações do Winforms.Se você escolher esse caminho, entretanto, sem dúvida terá que aprender XAML, que é uma linguagem de marcação que orienta aplicativos WPF.Essa tecnologia está amadurecendo e há muitos lugares excelentes para aprender sobre ela.Primeiro, existem sites como AprendaWPF, e DrWPF que tem alguns artigos realmente ótimos.Em segundo lugar, existem bastante de qualidade livros no tema.

Então, para resumir, depois de escolher o idioma e a tecnologia, o caminho é bastante fácil.Basta pegar um ou dois livros, ler alguns blogs, ver alguns exemplos de código.e o mais importante...escrever código.Continue escrevendo, continue cometendo erros e continue aprendendo com eles.

Como nota final...

Em outras palavras, Silverlight.Se você não quiser seguir o caminho da MS, você pode dar uma olhada no Flash/Flex da Adobe.Tanto o Silverlight quanto o Flash/Flex constroem RIAs.Acho que é para onde estamos indo.Os dias do Office como aplicativos estão contados

Eu não concordo nada.Silverlight não é o mesmo que WPF.O Silverlight é específico da web e possui apenas um subconjunto de recursos do WPF.Dado que a pergunta pede aplicativos GUI do Windows, os aplicativos Flash/Flex Rich Internet não são realmente uma sugestão adequada.Também não concordo que os dias dos aplicativos Rich Client (como o de escritório) estejam contados.

Espero que isso ajude.Boa sorte :)

Outras dicas

Não sei se diria que é um bom lugar para começar, mas se você quiser estar preparado para o futuro, dê uma olhada no Windows Presentation Foundation que é construído inteiramente com o propósito de programar GUIs para Windows

Minha primeira experiência escrevendo aplicativos GUI simples para Windows foi com C# e Visual Studio.A interface de construção da GUI é uma operação simples de arrastar e soltar que gera métodos básicos com base em possíveis ações do usuário.Eu fiz apenas uma programação bastante básica com isso, mas imagino que seria um excelente lugar para começar a aprender o básico e ampliar os recursos mais avançados à medida que avança.

Existem muitos tutoriais on-line do Win32:

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

Existem muitos compiladores para escolher:

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

Eu também recomendaria obter o SDK Win32 da Borland documentação em formato de arquivo WinHelp:

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

Ele cobre apenas o básico do Win32, mas ao iniciar, pode ser útil, pois é menos assustador e menos inchado que o MSDN.

Eu nunca seguiria o Silverlight, Flash/Flex ou qualquer caminho semelhante.Parece bom, mas o principal problema é que o código do mecanismo que o executa é completamente fechado e controlado por uma única empresa.Veja, por exemplo, versões de 64 bits de ambos.Se surgir alguma nova plataforma, você não poderá migrar seu código existente para ela.

Para aplicativos empresariais, o Windows Forms é muito maduro.Ele fornece um caminho suave desde a geração automática de muitas coisas para você até permitir um controle refinado e rolar o seu próprio.Existem muitos controles de terceiros de alta qualidade e um grande conjunto de exemplos, documentos, etc.É difícil encontrar um problema que outra pessoa não tenha resolvido.Eu recomendo fortemente adquirir algum conhecimento básico do Win32 (por exemplo, Petzold), já que a estrutura WinForms reside em cima dela.

Não tenho experiência em WPF, mas pelos aplicativos de exemplo que vi, parece uma boa escolha para aplicativos cujas interfaces se beneficiariam de mais metáforas gráficas.Portanto, se você estiver criando um aplicativo bancário, provavelmente não valerá a pena a sobrecarga extra de design.Mas se você estiver fazendo, digamos, um aplicativo de gerenciamento de armazém, ele poderia ser melhorado colocando lindas caixas em lindas caixas.

@StephenCox:resposta errada para a pergunta errada.OP está perguntando sobre aplicativos clientes de desktop e, além disso, WPF! = Silverlight.

Para um ponto de partida simples para entender a natureza "orientada a eventos", basicamente todas as estruturas são criadas em torno de: FLTK.

Aqui estão alguns vídeos de início rápido Link

Para uso profissional eu recomendo o Qt, caro, mas que geralmente vale a pena em situações comerciais.

Como você já está familiarizado com C e C++, recomendo aprender como escrever um aplicativo GUI simples do Windows usando o livro de Charles Petzold.Isso lhe dará uma compreensão fundamental de como o Windows funciona.É bom entender que quase tudo que você vê é uma janela (um botão é uma janela, por exemplo) e que essas janelas respondem a mensagens.Eu não gastaria muito tempo nisso e você não precisa necessariamente fazer isso primeiro se quiser escolher o WPF.Eu só acho que é bom ter uma compreensão básica disso.

Houve um bom podcast recentemente no .Net Rocks chamado "Kate Gregory desenvolve em C++ para Vista!" lá ela recomenda que quem está começando agora não use/aprenda MFC (mesmo que tenha sido atualizado recentemente).

Para se preparar para o futuro, você precisa aprender o WPF, mas ele ainda não está completo, portanto, dependendo dos tipos de aplicativos do lado do cliente que você deseja criar, provavelmente precisará aprender o WinForms.A maioria das pessoas ainda não usa o WPF, então é um bom momento para começar a aprender.Acho que você achará mais fácil usar C# para aprendê-lo em vez de fazer código gerenciado com C++.

Acerte primeiro o básico.O melhor tutorial que encontrei é: http://winprog.org/tutorial/start.html

Depois disso, embora a página inicial seja terrivelmente desagradável, as páginas do tutorial são boas em conteúdo e estética: http://www.tenouk.com/cplusmfcdotnet.html

Então é claro que há MSDN.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top