簡體   English   中英

如何使用C ++為Windows應用程序創建GUI?

[英]How do I create a GUI for a windows application using C++?

我正在決定如何為小型c ++ / win32 api項目(運行Visual Studio C ++ 2008)開發GUI。 該項目只需要幾個組件就可以開始主要過程,因此它的重量非常輕(只需一個按鈕和一個文本框...)。 我的問題是這樣的:

我沒有在Windows上開發GUI的經驗,但是我可以輕松學習。 那么,我應該使用什么呢? 一個可視化編輯器(拖放代碼生成g:到目前為止,我偏愛桌面GUI設計(java / swing))。 還是應該使用專門的圖書館? 無論哪種方式,我都應該使用WHICH庫或可視化編輯器? 我聽說有人提到用C#編寫GUI,然后調用C ++代碼...問題是,這是一個非常簡單的GUI,我發現將其全部保留在C ++中會更容易,但是我願意接受任何最好的建議是。

到目前為止,最好的C ++ GUI庫是Qt ,它全面,易於學習,非常快且具有多平台性。

嗯,它最近獲得了LGPL許可證,所以現在您可以免費下載它並包含在商業程序中

如果您正在做一個非常簡單的GUI,並且已經在使用Visual Studio,那么僅使用MFC可能很有意義。 您可以只使用Visual Studio MFC向導來創建基於對話框的應用程序,在其上放置兩個控件,然后就可以使用了。

MFC已過時,並且有很多煩人的地方,但是如果您只是在談論按鈕和文本框,它肯定會為您完成工作。

我沒有使用Qt的經驗,所以無法比較兩者。

我強烈希望僅使用Microsoft Visual Studio並編寫本機Win32應用程序。

對於您所描述的GUI一樣簡單的GUI,您只需創建一個對話框並將其用作主應用程序窗口即可。 實際上,由Visual Studio中的Win32 Project向導創建的默認應用程序會彈出一個窗口,因此您可以 Dialog Box 替換該窗口,並用類似(但更簡單)的DialogProc替換WndProc。

那么,問題是工具和成本之一。 除了實際創建“對話框模板”資源外,Visual C ++的Express Edition可以滿足您的所有需求。 為此,您可以手動將其編碼在RC文件中 ,也可以手動將其編碼在內存中 相關的SO問題: 不使用資源文件的Windows API對話框

或者,您可以嘗試其他人推薦的免費資源編輯器之一。

最后, Visual Studio 2008 Standard Edition是一個較昂貴的選擇,但為您提供了集成的資源編輯器。

只需創建一個新的MFC C ++應用程序即可。 它是內置的,非常簡單,世界上有成千上萬個示例...

另外,您可以直接在Visual Studio中設計對話框,為其指定變量名稱,然后為您生成90%的代碼。

我強烈建議不要使用普通的Win32,因為它是相當困難的,使其工作確定在所有情況下,這是非常枯燥和繁瑣的工作和公共控件庫並不完整。 此外,大多數工作已經為您完成。

每次我結束使用普通Win32時,我都必須花至少幾個小時來完成最瑣碎的任務,因為我必須查找所有參數,標志,函數,宏,並弄清楚如何正確地將它們連接起來。 通常,我更喜歡簡單的拖放式“不要讓我使用我的大腦”類型的解決方案,然后在2分鍾內將它們放在一起。

作為一個輕量級的工具包,我建議使用具有干凈漂亮API的omgui 但是,它沒有任何工具。

如果需要工具支持,您可能最終想要使用MFC(Visual Studio內置的資源編輯器)或Qt。 我不知道wxWidgets是否具有任何工具,但我想它具有。

編輯: David Citron提到,顯然Visual Studio中的資源編輯器會生成Win32兼容的資源文件,因此,如果您想使事情保持簡單,那可能是首選的處理方式。

諾基亞的Qt無疑是必經之路。 另一個選項是gtk,但是更好地支持和記錄了Qt。 無論哪種方式,它們都是免費的。 它們都被廣泛使用並且眾所周知,因此很容易找到問題的答案。

對於這樣一個簡單的應用程序,甚至MFC也會顯得過大。 如果不想引入其他依賴關系,只需在普通的Win32中進行即可。 如果您從未使用過MFC,它將對您來說更加容易。

查看Charles Petzold的經典“ Programming Windows”或一些在線教程(例如http://www.winprog.org/tutorial/ ),您就可以開始使用。

避免使用QT(對於菜鳥來說)或任何無用的庫(對於這樣的基本事情都是荒謬的)

只需使用VS Win32 api向導,然后在按鈕和文本框中添加廣告即可,僅此而已!

在25秒內!

如果您想了解Win32,WTL http://wtl.sourceforge.net/是相當於MFC的輕量級版本,但是您必須喜歡使用模板才能使用它。

如果您希望簡單的MFC已經與VS集成在一起,那么它也具有大量的額外代碼,並且已經有了網絡中已知錯誤的解決方法。

同樣,Qt確實是一個很棒的框架,它具有一組不錯的工具,對話框編輯器,主題以及許多其他內容,而且您的應用程序可以跨平台使用,盡管需要一些時間來習慣。

您也有Gtk,wxWindow,如果您已經在Linux上使用過它,那么將不會有任何問題。

一個帶有一些文本和一個按鈕的簡單“窗口”就是一個MessageBox。 您可以通過一個函數調用來創建它們。 您不需要任何庫。

我已經將wxWidgets用於小型項目,我喜歡它。 Qt是另一個不錯的選擇,但是對於商業用途,您可能需要購買許可證。 如果您使用C ++編寫,請不要使用Win32 API,因為它將使它面向對象。 這並不容易且費時。 此外,Win32 API包含太多宏,因此提供的功能過於復雜。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM