Windows용 GUI 프로그래밍을 시작하기에 좋은 곳은 어디입니까?[닫은]

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

  •  08-06-2019
  •  | 
  •  

문제

저는 C와 C++로 콘솔과 네트워크 클라이언트/서버 애플리케이션을 작성한 경험이 있지만 win32 시각적 API, MFC, Qt, wxWidgets 등을 사용하는 것에 대해서는 전혀 모릅니다.미래에 대비하고 견고해지기 위해서는 어디에서 시작해야 하며 어떤 방법을 전문으로 해야 합니까?

도움이 되었습니까?

해결책

Windows에서 GUI 응용 프로그램을 프로그래밍하는 것은 매우 다양한 방법으로 수행될 수 있으므로 이는 다소 광범위한 질문입니다.

GUI 앱 개발에는 두 가지 주요 부분이 있습니다.그만큼 언어 그리고 API/프레임워크.Windows GUI 앱을 구축하는 방법을 배우는 데 관심이 있다는 점을 고려하면 언어는 실제로 초점이 아닙니다.따라서 이미 알고 있는 언어를 선택하고 선택한 언어에서 활용할 수 있는 프레임워크나 API로 작업해야 합니다.

C를 사용하려면 Win32 API를 직접 처리해야 한다는 제한이 있습니다. 이 경우 다음 내용을 읽어보세요. 페트졸드 또는 리히터 시작하기 좋은 곳이 될 것입니다.Win32 API는 상당히 어려울 수 있지만 배우려는 노력을 들일 가치가 충분히 있습니다(imho).웹에는 Win32에 대한 많은 튜토리얼이 있으며 항상 MSDN, Win32 API에 대한 전체 참조/가이드 포함.API뿐만 아니라 Win32 애플리케이션의 구성 요소인 리소스/대화 상자와 같은 다른 영역도 다루도록 하세요.

C++를 사용하고 싶다면 C와 몇 가지 다른 옵션을 사용할 때 사용할 수 있는 모든 옵션이 있습니다.Win32 API를 직접 사용한 다음 MFC, Qt, wxWindows 또는 GTK와 같은 알려진 프레임워크로 이동하여 상용구 코드 작업에 소요되는 시간을 줄이고 대신 애플리케이션 논리 작성에 집중할 것을 권장합니다.방금 나열한 마지막 3가지 옵션에는 크로스 플랫폼이라는 추가 이점이 있으므로 플랫폼별 문제에 대해 너무 걱정할 필요가 없습니다.Windows에서 작업하고 싶다고 했다면 크로스 플랫폼보다는 Windows에 집중하고 싶어할 것입니다. 따라서 MFC를 사용하되 먼저 Win32 API에 시간을 투자하여 다음 중 일부에 익숙해지세요. 개념.

MFC 및 Win32 API를 다룰 때는 코드를 작성하기 전에 용어를 확실하게 이해하는 것이 좋습니다.예를 들어, 다음이 무엇인지 이해해야 합니다. 메시지 펌프 그리고 그것이 어떻게 작동하는지."와 같은 개념에 대해 알아야합니다.소유자가 그린 통제한다" 그리고 서브클래싱.이러한 사항(및 그 이상)을 이해하면 클래스 인터페이스에서 유사한 용어를 사용하기 때문에 MFC로 작업하는 것이 더 쉽다는 것을 알게 될 것입니다(예:사용 방법과 시기를 이해하기 전에 "메시지 번역"이 무엇을 의미하는지 알아야 합니다. 사전 번역메시지).

Managed C++를 사용하여 .NET GUI 응용 프로그램을 작성할 수도 있지만 Managed C++는 실제로 이런 방식으로 사용하도록 의도되지 않았다는 내용을 몇 군데 읽었습니다.대신 네이티브/비관리 코드와 관리 코드 간의 게이트웨이로 사용해야 합니다..NET을 사용하는 경우 VB.NET 또는 C#과 같은 .NET 언어를 사용하여 GUI를 구축하는 것이 가장 좋습니다.

그래서 당신이 ~이다 .NET을 사용하려는 경우 현재 다음 중 하나를 선택할 수 있습니다. WinForms 도서관, 또는 WPF.저는 개인적으로 WPF가 이를 대체하도록 설계되었기 때문에 WinForms 응용 프로그램을 빌드하는 방법을 배우는 데 시간을 낭비하게 될 것이라고 생각합니다.시간이 지남에 따라 WPF는 더욱 널리 보급될 것이며 Winforms는 사라질 가능성이 높습니다.WPF에는 훨씬 더 풍부한 API 세트가 있으며 Winforms와 같은 많은 제한 사항이 적용되지 않습니다.그러나 이 길을 선택한다면, 당신은 의심할 바 없이 다음과 같은 것을 배워야 할 것입니다. XAML, 이는 WPF 애플리케이션을 구동하는 마크업 언어입니다.이 기술은 시대가 다가오고 있으며 이에 대해 배울 수 있는 좋은 장소가 많이 있습니다.먼저 다음과 같은 사이트가 있습니다. 알아보기WPF, 그리고 DrWPF 정말 훌륭한 기사가 있습니다.둘째, 풍부한 ~의 품질 서적주제.

요약하자면, 일단 언어와 기술을 선택했다면 그 길은 실제로 꽤 쉽습니다.책 한두 권을 선택하고, 블로그를 읽고, 코드 샘플을 살펴보세요.그리고 가장 중요한 것은 ...코드를 작성하세요.계속해서 글을 쓰고, 계속 실수하고, 그로부터 계속 배우십시오.

마지막으로 말씀드리자면...

즉, 실버라이트.MS 경로로 가고 싶지 않다면 Adobe의 Flash/Flex를 살펴보세요.Silverlight와 Flash/Flex 모두 RIA를 구축합니다.내 생각에는 이것이 우리가 향하는 곳이다.앱처럼 Office의 시절은 번호가 매겨져 있습니다

나는 전혀 동의하지 않습니다.Silverlight는 WPF와 다릅니다.Silverlight는 웹 전용이며 WPF 기능의 하위 집합만 포함합니다.Windows GUI 앱에 대한 질문을 고려할 때 Flash/Flex Rich Internet Apps는 실제로 적합한 제안이 아닙니다.또한 리치 클라이언트 애플리케이션(사무실 등)의 수명이 얼마 남지 않았다는 점에도 동의하지 않습니다.

도움이 되었기를 바랍니다.행운을 빌어요 :)

다른 팁

시작하기에 좋은 곳인지는 모르겠지만 미래에 대비하고 싶다면 다음을 살펴보세요. 윈도우 프레젠테이션 파운데이션 이는 전적으로 Windows용 GUI 프로그래밍 목적으로 구축되었습니다.

Windows용 간단한 GUI 애플리케이션을 작성하는 첫 번째 경험은 C#과 Visual Studio를 사용하는 것이었습니다.GUI 구축 인터페이스는 잠재적인 사용자 작업을 기반으로 뼈대 방법을 생성하는 간단한 끌어서 놓기 방식입니다.나는 이것으로 아주 기본적인 프로그래밍만 했지만, 기본을 배우고 더 발전된 기능으로 확장하기 시작하기에 훌륭한 장소가 될 것이라고 생각합니다.

온라인 Win32 튜토리얼이 많이 있습니다:

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

선택할 수 있는 컴파일러는 많습니다:

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

나는 또한 볼랜드 Win32 SDK WinHelp 파일 형식의 문서:

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

Win32의 기본 사항만 다루고 있지만 시작할 때 MSDN보다 덜 어렵고 덜 부풀기 때문에 도움이 될 수 있습니다.

나는 결코 Silverlight, Flash/Flex 또는 이와 유사한 경로를 따르지 않을 것입니다.보기에는 좋아 보이지만, 가장 큰 문제는 이를 실행하는 엔진의 코드가 완전히 폐쇄형이고 단일 회사에 의해 제어된다는 것입니다.두 가지 모두의 64비트 버전을 예로 들어 보겠습니다.새로운 플랫폼이 등장하면 기존 코드를 해당 플랫폼으로 마이그레이션할 수 없습니다.

비즈니스 앱의 경우 Windows Forms는 매우 성숙합니다.자동 생성에서 세밀한 제어가 가능하고 자체적으로 롤링할 수 있는 부드러운 경로를 제공합니다.수많은 고품질 타사 컨트롤과 수많은 예제, 문서 등이 있습니다.다른 사람이 해결하지 못한 문제에 직면하는 것은 어렵습니다.Win32에 대한 배경 지식을 습득하는 것이 좋습니다(예: 페트졸드) WinForms 프레임워크가 그 위에 있기 때문입니다.

저는 WPF 경험이 없지만 제가 본 샘플 앱을 보면 인터페이스가 더 많은 그래픽 메타포로부터 이점을 얻을 수 있는 앱에 적합한 선택인 것 같습니다.따라서 뱅킹 앱을 만들고 있다면 아마도 추가 디자인 오버헤드를 감당할 가치가 없을 것입니다.하지만 예를 들어 창고 관리 앱을 사용하고 있다면 예쁜 상자를 예쁜 상자에 넣어두면 개선될 수 있습니다.

@스티븐콕스:잘못된 질문에 대한 잘못된 대답.OP는 데스크톱 클라이언트 앱과 WPF != Silverlight에 대해 묻고 있습니다.

"이벤트 중심" 특성을 이해하기 위한 간단한 시작점으로 기본적으로 모든 프레임워크는 다음을 중심으로 만들어집니다. FLTK.

다음은 빠른 시작 동영상입니다. 링크

전문적인 용도로 사용하려면 비싸지만 상업적인 상황에서는 그만한 가치가 있는 Qt를 추천합니다.

여러분은 이미 C와 C++에 익숙하므로 Charles Petzold의 책을 사용하여 간단한 Windows GUI 앱을 작성하는 방법을 배우는 것이 좋습니다.Windows 작동 방식에 대한 기본적인 이해를 제공합니다.우리가 보는 대부분의 모든 것이 창(예: 버튼은 창임)이며 이러한 창은 메시지에 응답한다는 점을 이해하는 것이 좋습니다.하지만 나는 이것에 많은 시간을 소비하지 않을 것이며 WPF를 선택하려는 경우 반드시 이 작업을 먼저 수행할 필요도 없습니다.이 부분에 대해서는 기본적인 이해를 하는 것이 좋을 것 같습니다.

최근 .Net Rocks에 다음과 같은 좋은 팟캐스트가 있었습니다. "Kate Gregory는 Vista용 C++로 개발합니다!" 거기에서 그녀는 지금 시작하는 사람은 MFC를 사용하거나 배우지 말 것을 권장합니다(최근에 업데이트되었더라도).

미래를 준비하려면 WPF를 배워야 하는데 아직 완성되지 않았기 때문에 만들고자 하는 클라이언트 측 앱의 종류에 따라 WinForms를 배워야 할 수도 있습니다.대다수의 사람들은 아직 WPF를 사용하지 않으므로 학습을 시작하기에 좋은 시기입니다.C++로 관리 코드를 작성하는 것보다 C#을 사용하여 배우는 것이 더 쉬울 것이라고 생각합니다.

먼저 기본을 바로잡으세요.내가 찾은 최고의 튜토리얼은 다음과 같습니다. http://winprog.org/tutorial/start.html

그 후, 홈페이지는 혐오스러울 정도로 불쾌하지만 튜토리얼 페이지는 내용과 미학적 측면에서 훌륭합니다. http://www.tenouk.com/cplusmfcdotnet.html

그럼 당연히 있지 MSDN.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top