Pergunta

Por que não há um designer para formas nativas da API no Visual Studio? Semelhante ao Delphi? Se existem alguns programas, ferramentas etc, por favor conselho.

O que é a melhor abordagem para projetar janelas complexas em API puro?

Foi útil?

Solução

Isso é provavelmente porque não há nenhuma maneira padrão de fazer layouts de controle em WinAPI, você tem que gerenciá-lo por si mesmo. Não há base de "Control" classe em WinAPI -. Tudo é uma janela de algum tipo, por isso não há maneira de apoiar as suas diferenças com um layout comum editor / desenhador

No entanto, pode criar o layout de janelas em um diálogo e torná-lo redimensionável sozinho ou usando métodos publicados na codeproject ( este ou este - ambos são MFC-relacionados, mas que é bastante fácil de traduzir).

Ou se adaptar ScreenLib às suas necessidades de desktop .

Outras dicas

Há editor ressource para caixas de diálogo, e então há código. Eu realmente nunca perdeu alguma ferramenta de design visual, embora alguns melhor suporte dos controles si seria bom.

O principal problema é o nível de abstração: usando apenas comandos Win32, projetando um GUI complexo precisa de um pouco de reflexão, e os controles têm ligeiramente diferentes estranhezas, capacidades e recursos. Eles não têm uma interface comum que pode ser usado para construir um designer em cima.

WinForms foi projetado desde o início com o apoio de designer em mente, e ele mostra. A principal preocupação projeto de controles Win32 foi footprint de memória de código e dados.

Mesmo MFC (que ainda mostra muitos sinais de escassez de memória) não abstrai essas esquisitices distância bem o suficiente para justificar um designer de formulários decente.

Todos os ambientes que vêm com um editor de formulários decente (eu me lembro Watcom ++ / Optima, zinco e bastante alguns outros que eu já esquecido os nomes de) também vêm com uma biblioteca de formulários decente com um nível de abstração alta.

Depois, há o problema de modificações. Qual deve ser a saída do designer? Pode-se atirar para um arquivo de dados XML, mas que gostaria de acrescentar uma dependência para algumas grandes bibliotecas para a sua aplicação nativa - não faz muito sentido. Ou você cria código, mas C / C ++ não é bem adequado para isso. Outro formato binário? Você iria limitar-se ao que o designer permite.


No final, o designer teria que cuidar de cada controle separadamente, e ainda não conseguiu isolar-lo de saber os controles e mecanismos de janelas dentro para fora. Ele nunca foi realizada quando C ++ foi a primeira escolha para o desenvolvimento de desktop grande escala. Somando-se agora , quando existem - sem dúvida -. Escolhas melhores, seria um movimento bastante estúpido

É por causa da Microsoft. Eles já mudou para dotNet e C #. Visual Studio 2005 tem bom editor GUI para aqueles. Por que você precisa usar a API puro?

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