2011-07-27 3 views
2

을 구현하는 방법 Win32 응용 프로그램의 sigc 및 glibmm을 사용하여 UI를 설계 한 경우 메시지 루프를 구현하는 방법은 무엇입니까? GetMessage, DispatchMessage, TranslateMessage 등의 Win32 API를 계속 사용하고 있습니까? 또는 다른 기능을 사용하여 종료합니까? 그리고 기본 WinProc이 아직 있습니까?sigc 및 glib를 사용하는 win32 응용 프로그램에서 메시지 루프

+0

"예 :"GetMessage "가 정확합니다. 'PeekMessage'는 실행 가능한 대안입니다. –

답변

2

모든 Windows GUI 응용 프로그램은 GetMessage, TranslateMessage, DispatchMessage을 기반으로 메시지 펌프를 실행해야합니다. 프레임 워크는 일반적으로 구현 세부 사항에서 당신을 보호하지만 어딘가에 프레임 워크는 메시지 펌프가 될 것입니다.

윈도우 절차에서도 마찬가지입니다. 글을 쓸 필요가 없거나 상호 작용할 필요는 없지만, 프레임 워크는 프레임 워크 구현 방법에 따라 최상위 윈도우와 하위 윈도우에 대한 윈도우 프로 시저를 제공해야합니다.

3

sigc + glibmm은 네이티브 콜백/메인 루프 (MacOSX의 경우 NSRunLoop 및 Windows의 경우 GetMessage)의 맨 위에있는 GTK C 프레임 워크 콜백/메인 루프의 최상위 레벨입니다.

GetMessage는 Windows 핸들, 키 누르기 및 마우스 동작과 같은 절대적인 기본 사항을 얻으려면 Windows의 모든 GUI 응용 프로그램에서 호출해야합니다.

액셀러레이터 키가 GTK 자체 구현으로 처리되므로 TranslateMessage가 필요하지 않습니다.

SendMessage는 거의 사용되지 않으며 SendMessage가 필요한 대부분의 호출은 버튼이나 텍스트 필드 위젯과 같은 클라이언트 컨트롤에 대한 호출입니다. GTK에서는 GtkButton 및 GtkEntry로 구현되며 GTK는 Windows 메시지 전달을 거치지 않고 직접 C 구현을 사용할 수 있습니다.

관련 문제