2012-07-24 2 views
0

Firebreath로 이미지 뷰어 플러그인을 개발하는 방법에 대한 일반적인 질문이 있습니다. 이를 위해 wxwidget 또는 Qt와 같은 GUI 프레임 워크를 통합하고자합니다. GUI는 일부 대화 상자를 실행하거나 위에 도구 모음을 추가하거나 이미지를 마우스 오른쪽 단추로 클릭하여 상황에 맞는 메뉴를 여는 데 사용됩니다.이미지 뷰어 플러그인에 사용자 인터페이스 추가

내가 이해하는 한, 나는 hwnd 핸들을 가지고 있으므로 창에 그릴 수 있습니다. 또한 마우스 버튼 클릭이나 키보드 스트로크처럼 반응 할 수있는 다양한 이벤트가 있음을 이해합니다. 하지만 그것은 그래픽 메뉴, 버튼 등을 추가하는 방법에 실패합니다. 나는 창문 주위에 html을 사용할 수 있다는 것을 알고 있습니다. 그러나 그것은 제가 취하고 싶은 경로가 아닙니다.

예를 들어 이미지에 사용자 인터페이스를 오프라인으로 (메모리에) 렌더링 한 다음 내부적으로 상태를 추적 할 수 있습니까?

그런 일을 한 사람이 있습니까? 아니면 누구나 사용자 인터페이스를 추가하는 방법에 대한 통찰력을 줄 수 있습니다.

답변

1

창에 대해서만 신경 쓰고 가장 쉬운 (하지만 HTML 요소가 플러그인 위에 떠있을 수는없는) 창 플러그인을 사용한다고 가정하면 모든 언어에서 GUI를 만드는 것과 다를 바 없습니다 다른 Windows 응용 프로그램.

AttachedEvent와 함께 나타나는 창이 표시됩니다. DetachedEvent가 실행되면 윈도우 사용을 중지해야합니다. 많은 사람들이 그 부모 창 안에 자식 창을 생성하고 실제의 모든 실제 코드에 사용하기 때문에 다른 추상화 중 하나를 사용하기가 조금 더 쉬워집니다. 그러나 기본적으로 그 모든 것이 있습니다. 나는 당신이 QT 나 wxwidget으로 어떻게 할 것인지 구체적으로 모르지만, 당신이 주어진 HWND의 자식 창을 만들고 추상화를 해 당신을 위해 당신의 일을 할 수 있습니다.

화면 밖에서 물건을 렌더링할지 어떨지에 대해서는 잘 모르겠다. 그것은 창 시스템에 전적으로 의존 할 것입니다. 내가 그 일을 할 필요가 있다는 것을 알 수있는 이유가 없으며, 대부분의 일들이 HWND에 직접적으로 전달되지만, 당신이 할 수있는 엄청나게 다른 방법이 있습니다. Windows에서의 드로잉이 실제로 어떻게 작동 하는지를 이해하는 것이 정말 필요한 것 같습니다.

희망 하시겠습니까?

+0

답변 해 주셔서 감사합니다. 나는 너의 마음을 좀더 고를 때 너는 괜찮 았으면 좋겠다. Win32와 GDI를 지금 사용 해보자. 프로그래밍 방식으로 메뉴를 추가하는 방법을 알고 있습니다. 그래서, 사용자가 메뉴 컨트롤을 클릭 할 때 win32 시스템에 그러한 마우스 이벤트를 전달해야합니다. 그러나 결과 이미지를 다시 얻는 방법은 무엇입니까? – chhenning

+1

"결과 이미지를 얻으십시오"라는 것이 무슨 뜻인지 잘 모르겠습니다. 당신은 HWND에 그림을 그리기 위해 픽셀을 얻고 블리트해야하는 오프 스크린 버퍼가 아닌 HWND를 사용합니다. – taxilian

+0

다른 스레드를 만듭니다. 하지만 먼저 약간의 테스트를 할 것입니다. 시간 내 주셔서 다시 한번 감사드립니다. – chhenning