2010-11-03 69 views
1

我想開發使用Windows API的本地C++ Windows應用程序。我發現它很困難,因爲我無法渲染窗口和拖放組件,改變位置等。從C#遷移到本機窗口C++

我如何查看,拖放組件,就像我可以在C#中做的那樣?

可能沒有辦法。如果是這樣,設計應用程序的最快程序是什麼?

+0

爲什麼它必須是C++?在.NET中開發豐富的GUI應用程序要容易得多,這是沒有辦法的。 – jalf 2010-11-03 22:22:10

+0

這可能是工作要求或其他原因,但只是切換到使用C#並不總是一種選擇。使用類似Qt的東西可以讓他編寫他的GUI應用程序,而不需要使用Windows API。這將能夠進行拖放創建(或者如果您願意,或者通過XML,可以嚴格按照代碼進行),並且可以跨平臺(如果正確完成)獲得額外的好處。 – g19fanatic 2010-11-04 11:02:20

+0

我同意你的意見。我發現QT非常有幫助,而且我確實需要它。並正在研究它目前。它確實滿足我的需求。 – 2010-11-04 15:08:36

回答

3

如果您非常喜歡組件的拖放(當然也有很好的理由),您爲什麼需要使用C++來開發它?如果您需要從C#代碼中調用一些不在.net框架中的C++函數,則可以使用PInvoke。

但是,如果你真的堅持,也許你可以嘗試QT

+0

謝謝。我看看QT。 – 2010-11-03 15:27:51

1

假設您使用的是Visual Studio,如果您的應用程序可以作爲對話框來實現,那麼您可以使用對話框編輯器進行佈置。否則,你只需編寫代碼來創建窗口和放置控件。查看Visual Studio附帶的MFC示例。

Jeff Prosise的MFC編程窗口是學習如何做到這一點的較好書籍之一,但我認爲它已絕版,因此可能很難找到。

Charles Petzold的PROGRAMMING WINDOWS是Win32 API的聖經。再次,可能很難找到這些日子。

如果MFC不是你的一杯茶,你也可以看看QT,GTK +或wxWidgets。每個人都有GUI構建器,但與C#所能做的相比,它們都非常原始。

+0

是的,我使用VS,是的,我目前堅持MFC。但我有點喜歡做贏API。只是猜測會有希望:) – 2010-11-03 15:22:29

+1

MFC大多隻是Win32的一個薄包裝,所以如果你知道如何使用MFC做些事情,將它翻譯成原始API調用通常是微不足道的。 – 2010-11-03 15:26:24

+0

MFC使用的對話框編輯器可以使用爲標準Win32創建一個對話框。控件綁定根本就不存在。如前所述,如果你需要對話以外的東西,那就什麼都沒有。 – 2010-11-03 15:58:42

0

據我所知,在那裏沒有任何IDE可以讓你「像使用C#一樣拖放創建」標準win api窗口。

親自爲這類型的應用,我總是建議用Borland C++ Builder中(也就是現在的CodeGear RAD Studio企業)
雖然它不是標準的API,它可以讓你拖動下降,靜態鏈接是很容易的,所以你不要不得不擔心可重新分配的問題

2

使用像Qt這樣的庫框架確實是您想要的方式。它使事情變得非常簡單,並且仍然允許你用std C++編寫代碼來保持大部分事情的速度。

如果您有意將代碼移植到與Windows不同的平臺(無論是Mac,Linux甚至是Android ......是可能的),qt絕對是您想要去的方式。

我可以使用Qt在幾分鐘內順利地啓動並運行一個應用程序,但使用MFC的時間更長且使用更多混淆。

使用Qt內置的QtDesigner,拖放'widgets'以形成gui非常容易且可能!一探究竟!!!

http://qt.nokia.com/downloads