none
Iniciando em MFC RRS feed

  • Pergunta

  • Bem gente, to começaando a meter a cara em MFC. Confesso que ta um pouco complicado pela falta de material em português, mas devagar to me virando. Cada pessoal tem a melhor forma para aprender, pra mim a melhor forma é conheçendo o básico e metendo a mão na massa. Então aproveitarei o fato de ter um projeto de uma aplicação comercial simples para desenvolver para um cliente e tentarei desenvolve-la em MFC.

    Bem pra começo de dúvidas, a primeira é com relação ao Wizard do mfc. Qual a diferença de um modelo de aplicação para a outra? Tipo Aplicação Simples, MDI, Dialog, etc..... ? Eu sei o que´e uma app MDI e tabem o que so dialogs, quero saber qual a diferença essa escolha ira fazer no projeto.
    Digameos que eu escolha no wizard uma aplicação baseada em dialog, isso quer dizer que eu não poderei tranforma-la em uma aplicação MDI?
    Existe uma opção de projeto vazio?
    Grato.......


    I love Difficulty
    quinta-feira, 19 de maio de 2011 20:05

Todas as Respostas

  • Matheus,

    Primeiro, na minha opinião, fazer uma aplicação comercial simples em C++ não é uma boa escolha. Se eu tivesse que desenvolver uma aplicação desse tipo eu escolheria código gerenciado (.NET).

    Em relação às suas perguntas:

    P:Qual a diferença de um modelo de aplicação para a outra?

    R: A escolha de MDI e SDI possuem códigos mais parecidos e a escolha do tipo Dialog é um pouco diferente. Para MDI e SDI o que muda é somente o tipo de template (CSingleDocTemplate ou CMultiDocTemplate) e em MDI existe o frame (CChildFrame) das janelas filhas. Para o template Dialog só existe uma classe que herda de CDialogEx. Todos os 3 templates possuem a classe da aplicação.

    P: Digamos que eu escolha no wizard uma aplicação baseada em dialog, isso quer dizer que eu não poderei tranformá-la em uma aplicação MDI?

    R: É possível sim fazer essa transformação no código, mas não com o auxílio do Visual Studio.

    P: Existe uma opção de projeto MFC vazio?

    R: Não, mas é possível fazer isso criando uma aplicação do tipo Win32 (Win32 Project) vazio e depois mudando nas configurações do projeto a utilização de MFC (Configuration Properties > General > Use of MFC).

    Espero ter ajudado.

    Att.

    Ari C. Raimundo
    MCAD, MCTS
    http://araimundo.blogspot.com


    sexta-feira, 27 de maio de 2011 02:43
  • Olá Matheus,

    Um minimo de inglês será necessário, "specially if you love difficulty", pois existem ótimos livros somente nesta lingua.

    Sobre o projeto MFC vazio, você poderá sair de um Win 32 project, mas será necessário criar um arquivo de recursos tbm. Principalmente, se usar Document/View.

    Particularmente eu tbm não optaria por MFC nos dias de hoje, porque não usar Qt para UI nativa? Pelo menos até o time do Visual C++ oferecer uma alternativa moderna. A Qt integra facilmente com o Visual C++.

    Outra opção poderia ser a WTL.

    Se o caso de aprender MFC for manter legado vá em frente, caso contrário não vale a pena.

    Grande abraço,

    Fabio Galuppo 


    Fabio Galuppo
    sexta-feira, 27 de maio de 2011 17:24
  • hehe, e ai galupão, c anda fazendo falta por aqui... :)

    a modinha de código gerenciado ta acabando com as comunidades C++

    Eu continuo no meu caminho, tentando me libertar de código gerenciado (java). Tudo porque, detesto moda, tendências, etc..

    Consegui algum conhecimento em C++, entender como se usa OO nele, etc... E tb entender alguns temas que para mim eram meio confusos com templates, e ponteiros.

    Minha intenção era não sair do ambiente MS, ou seja não usar apis de terceiros, Qt, GTK, wx, etc...

    Você me falou que se não for para manter legado não vale apena investir em MFC, então o que se usa hoje em dia para escrever software nativo e com look nativo no windows?

    API gráfica nativa da ms só conheço essas duas MFC e WTL. Porém WTL não tem templates no VS por isso acho que seria até mais improdutivo que mfc.

    A app que tenho que fazer é coisa simples e não há pressa, É apenas uma migração se um pequeno sistema de uma autoescola que hoje roda em clipper. Resume-se em cadastrar alunos, instrutores, carros, emitir recibos, e mais algumas coinhas. Pensei em aproveitar que o projeto é super simples e sem pressa por parte do cliente, e usar MFC para aprender a usa-lo.

    Ari, valeu tio, pelo esclarecimento, aparece de vez em quando por aqui, a comunidade c++ ta precisando de pessoas experientes por aqui, só vejo muito aqui é nego preguiçoso trazendo o dever de casa para o pessoal fazer pra eles.


    I love Difficulty
    • Editado matheusssilva sexta-feira, 3 de junho de 2011 18:47 complementos
    sexta-feira, 3 de junho de 2011 12:38
  • Acredito que fazendo isso não será um aplicação 100% natitiva e sim uma aplicação hibrida. Se for pra usar WindowsForms (gerenciado) seria melhor aderir de vez o C#.

    Creio tb que o c++ ainda vai longe dentro da ms, ainda mais com o C++ 0x.


    I love Difficulty
    sexta-feira, 3 de junho de 2011 21:59
  • Matheus,

    Tio? rs Eu tenho 30 anos!

    Só uma informação: o MFC não está assim tão na gaveta. Recentemente a Microsoft colocou algumas classes wrappers para Direct2D no MFC (SP1 do VS2010).

    Abraços.

    Ari C. Raimundo
    MCAD, MCTS
    http://araimundo.blogspot.com

    sábado, 4 de junho de 2011 21:25
  • Bem, na minha opinião a expansão da MFC é para dar suporte e acesso a novas funcionalidades para aplicações antigas/legado.

    Não acreditem que em pleno século XXI o "programming model" da MFC é ideal. O renascimento do C++ na MS tem pouco ou quase nada haver com a MFC.

    O "programming model" ideal utiliza os conceitos de "modern C++". Quer um exemplo: Patterns Parallel Library do VC++ 10 (ppl.h).

    O "WinC++" pode trazer novidades: http://www.zdnet.com/blog/microsoft/what-is-winc-and-how-does-it-figure-in-microsofts-bid-to-make-tools-a-2-billion-business/9359 

    http://www.zdnet.com/blog/microsoft/microsoft-needs-to-tell-windows-8-developers-now-about-jupiter-and-silverlight/9608?tag=mantle_skin;content


    Fabio Galuppo
    terça-feira, 7 de junho de 2011 12:40
  • Será que junto vem uma especie de MFC Super OO?

    O que torna o Visual C++ e MFC um ambiente desagradavel para muitas pessoas não é pela linguagem em si ou por ser desenvolvimento nativou, ou ainda pela API MFC (acredito eu), mas sim a falta de um suporte descente ao C++ no Visual Studio. Prova disso tai o C++ Builder XE. Você escreve aplicações nativas em C++ com a mesma praticidade do Delphi. Se pelomenos o VS desse um melhor suporte ao C++, com recursos drag-and-drop RAD, já seria excelente. Vide o desenvolvimento em Qt, a pragramação se torna tão fácil que nem parece que estamos escrevendo em C++.

    Pelo que li ai, o VS 2012 tem como proposta trazer tais recursos ao C++ com o WinC++, mais um motivo para abraçar Visual C++/MFC nem que seja temporáriamente até a chegado do "WinC++".

    Quem já desenvolve ou tem experiência em Visual C++ terá uma adaptação mais fácil as mudanças rádicas propostas ai. Quem não tem experiência com desenvolvimento C++ vai ter que ralar mais.

    Será que eles cairam na real e viram que esse lance de código gerenciado é furada, que não se faz nada realmente importante com isso e ainda por cima esperar que fique bom. Vide windows vista, a versão windows com mais código gerenciado que qualquer outra. Imagina isso full CLR.


    I love Difficulty


    terça-feira, 7 de junho de 2011 14:55