3

当我创建一个“Windows 窗体应用程序”时,生成的程序是一个托管程序。创建一个“Win32 应用程序”会产生一个原生应用程序,但是当我尝试添加一个表单时,我被告知如果我继续,该项目将转换为 CLI。如何使用 Visual C++ 2008 Express Edition 设计本​​机 Windows GUI?我可能在这里很傻,但我就是想不通。

4

10 回答 10

7

使用 MFC、WTL 或直接的 Win32 API。如果不切换到托管代码,就无法使用表单(或任何 .NET)。

于 2010-02-01T23:12:05.077 回答
2

您只需要避免托管库。这很可能意味着将MFC用于 GUI,而不是 Windows 窗体。有关详细信息,请参阅MSDN 的 MFC 页面

不幸的是,VC++ Express Edition 不直接支持 MFC,因此您将受到更多限制。使用 Express Edition编译 MFC 项目是可能的,但您会失去所有的向导等。如果您认真地进行非托管 GUI 开发,您应该考虑升级到更高级别的 SKU。


另一种选择是将Qt用于 GUI。它现在是 LGPL,可以免费使用,甚至可以在商业 C++ 项目中使用,并且包括一个完整的设计器。

于 2010-02-01T23:03:34.880 回答
2

这是对链接问题的答案。不幸的是,罗伯特哈维已经关闭了它,因为他认为它是重复的。不是,对不起,鲍勃。

创建 xll 的最佳库是http://xll.codeplex.com。您可以使用它来使用 Excel 宏创建基本的用户界面。一个例子可以在xll/error.cpp中的 ALERT.FILTER 宏中找到

于 2012-03-02T18:04:39.123 回答
1

作为 Reed Copsey,MFC 将是在 Windows 平台上创建本机非托管 GUI 的“默认”方式。但是,MFC 不包含在 Visual Studio Express 中。因此,您要么需要升级到完整版本,要么可以考虑使用免费提供的 C++ GUI 库,例如wxWidgets

如果你想要一个 GUI 编辑器,还有wxFormsBuilder 。

您还可以直接使用 Win32 API 的“裸机”和代码,也许可以从公共控件库中获得一些帮助。但你会进入一个痛苦的世界;)

于 2010-02-01T23:09:49.440 回答
0

您将需要使用本机应用程序框架。对于 Windows,这意味着 MFC 或裸 Win32 库。WinForms 在后台使用 .NET 库,因此需要进行管理。

于 2010-02-01T23:05:18.680 回答
0

本机应用程序不使用“表单”。例如,对于本机应用程序,您可以创建 MFC 应用程序。如果您希望它类似于基于表单的应用程序,您可以告诉向导您想要一个基于对话框的应用程序,或者(在向导的最后一页上)让您的视图派生自 CFormView 而不是 CView。

或者,您可能想要使用 WTL ——尽管这意味着您基本上要手动编写所有代码,而不是使用向导等。

于 2010-02-01T23:06:00.087 回答
0

Windows 窗体是作为 Microsoft .NET 框架的一部分包含的图形应用程序编程接口 (API) 的名称,通过将现有 Windows API 包装在托管代码中来提供对本机 Microsoft Windows 界面元素的访问。

于 2010-02-01T23:07:13.033 回答
0

上面的大多数答案都很好地解释了事情——如果你想研究创建一个纯 Win32 Native App 表单(没有 MFC/WTL 等),请查看这里的教程:http ://www.zetcode.com/tutorials/ winapi/对于初学者。这是我第三次在这里链接到这个网站,但他的教程非常好。

注意 - 在这个阶段,除了结果之外没有任何“视觉” - 这一切都是在代码中完成的,尽管我不认为这真的太难了。这绝对是一次很好的编程体验。

于 2010-02-01T23:10:24.460 回答
0

Windows 窗体是用托管代码编写的 GUI 框架,因此您不能在本机应用程序中使用窗体。

使用本机应用程序,您必须创建窗口。 由 Charles Petzold 编写的Programming Windows是这方面的权威书籍。与使用一个好的框架相比,这是很多工作。MFC(Microsoft 基础类)是本机 Windows GUI 的框架。我不知道它是否带有 VC++ Express。

于 2010-02-01T23:12:01.650 回答
0

我注意到没有人提到JUCE可以用来在 C++ 中构建跨平台用户界面。我觉得这很酷。自从我使用它以来,它似乎也已扩展到支持移动设备。

个人和教育许可证是免费的。“Pro”和“Indie”许可证相对便宜。

于 2017-06-28T11:05:22.097 回答