2010-04-19 7 views
8

Win32 API를 사용하여 Gui를 만드는 올바른 방법에 대해 궁금합니다.Gui의 Win32 API

지금은 CreateWindowEx 이벤트를 내 WM_CREATE 이벤트에 호출하지만 이것이 올바른 방법이라고 생각하지 않습니다.

예를 들어, 100x20 EditField를 추가하고 텍스트를 가져 오는 올바른 방법은 무엇입니까? WM_Create에 만들겠습니까? GetText()을 사용 하시겠습니까?

감사

+1

나는 http://www.aleax.it/TutWin32/에서 그에 대한 자습서를 가지고 있지만, 슬프게도, 그것은 단지 이탈리아어의 - 영어 46 장을 번역 할 수 있으며, 그 결과에 스쿼시 하나의 SO 대답 ;-). Google 크롬을 사용하는 경우 자동 영어 번역을 사용해 볼 수 있습니다. 재미있게하기 위해 - 편집 컨트롤은 22 장 및 그 이후에 있습니다 ;-). –

+2

가능한 복제본 http://stackoverflow.com/questions/342729/learning-the-win32-api –

+0

"자습서 요청"으로 투표 완료. –

답변

5

다음은 꽤 좋은 예가있는 다른 사이트입니다 - http://www.winprog.org/tutorial/start.html 또한 그들이 이탈리아 번역 :이 같은

이것은 우리가 당신은 창문이있는 간단한 GUI를 작성하는 경우는 Win32

1

에 대한 샘플 웹 사이트를 게시하려는 경우 많은 게시물의 중복 있어야한다 보인다 api를 선택한 다음 리소스 편집기를 사용하여 대화 상자 리소스를 만든 다음 DialogBoxParam이라는 간단한 호출로 앱 창 클래스 등록 및 창 만들기 코드를 바꿉니다. DialogBoxParam은 대화 상자 리소스를 읽고 자동으로 대화 상자를 생성하여 사용자 폰트 설정에 대한 모든 사항을 조정하고 메시지 루프를 처리하며 컨트롤 사이의 탭 이동을 자동으로 지원하는 등의 작업을 수행합니다.

+0

한 가지 - 컨트롤에 대해 유효한 테마 글꼴을 직접 업데이트해야합니다. 그렇지 않으면 .res 대화 상자 설명에서 기본 글꼴을 가져옵니다. –

1

WM_CREATE 이벤트에서 수행 할 필요는 없지만 그렇게 할 수는 있습니다. 나는 보통 메인 윈도우가 만들어진 같은 범위에있는 자식 윈도우를 만든다. 예를 들어 :

HWND mainWindow = CreateWindowEx(...); 
HWND editField = CreateWindowEx(...); // use mainWindow for the hWndParent param 
             // the hMenu parameter sets child window id