2012-07-24 41 views
0

我有一個關於如何使用Firebreath開發圖像查看器插件的常見問題。爲此,我想加入一個GUI框架,比如wxwidget或Qt。 GUI將用於啓動一些對話框,在頂部添加工具欄,或者右鍵單擊圖像打開上下文菜單。將用戶界面添加到圖像查看器插件

據我瞭解,我有一個hwnd手柄,所以我可以繪製到一個窗口。我也明白,我有各種事件可以作出反應,例如鼠標按鈕點擊或鍵盤敲擊。但是它讓我不知道如何添加圖形菜單,按鈕等。我知道我可以在窗口周圍使用html,但那不是我喜歡採用的路線。

例如,將用戶界面離線(在內存中)渲染到圖像上,然後在內部以某種方式跟蹤狀態是否合理?

有沒有人做過這樣的事情?或者任何人都可以給我一些關於如何完成添加用戶界面的見解。

回答

1

假設你只關心窗口,並假設你不介意使用窗口化插件,這是最簡單的(但沒有HTML元素可以在插件上浮動),它應該沒有什麼不同,其他Windows應用程序。

給出一個窗口,顯示AttachedEvent;當DetachedEvent被觸發時,你需要停止使用窗口。很多人在父窗口內創建一個子窗口,並將其用於所有實際的真實代碼,這使得使用其他抽象方法更容易一些,但基本上它就是這樣。我不知道如何使用QT或wxwidget來做這件事,但是你會創建一個HWND的子窗口,並給出你想要的結果。至於它是否會渲染屏幕外的東西等,我不知道;這完全取決於窗口系統。我沒有理由知道你需要這麼做,而且大部分東西都直接吸引到HWND,但是有幾種不同的方式可以做到這一點。它看起來像我真正需要的是瞭解如何在Windows中繪圖實際工作。

我希望可以幫到

+0

感謝您提供豐富的答案。我希望你不介意我稍微選擇一下你的想法。讓我們暫時堅持使用Win32和GDI。我知道如何以編程方式添加菜單。所以,當用戶點擊菜單控件時,我不得不將這種鼠標事件轉發給win32系統。但是如何獲得最終的圖像? – chhenning 2012-07-24 21:52:40

+1

我不確定你的意思是「得到最終的圖像」;你畫到HWND,而不是一些離屏緩衝區,然後你需要獲取像素並將其投影到屏幕上。 – taxilian 2012-07-24 23:08:35

+0

我將創建另一個線程。但首先我會做一些測試。感謝你的寶貴時間。 – chhenning 2012-07-25 00:44:13

相關問題