我正在学习如何用C ++开发Win32应用程序。我使用的是Visual Studio和windows.h,我的时间很糟糕。 我来自Java和Android,您可以在其中创建类似MainWindow或OptionsWindow的类,然后在内部编写行为并在需要时实例化它们。
但现在我在C ++中,我迷失了。 我在windows.h库中看到的所有示例都是代码,其中Main是窗口内的WinMain。所以,这是我的问题:有没有办法为不同的窗口编写不同的类,并在需要时实例化它们?
之类的东西 OptionWindow ow = new OptionWindow
或者我应该在WinMain中编写我需要的每个窗口的所有代码,然后让它可见?
帮助非常感谢。谢谢。
答案 0 :(得分:2)
如果您致力于仅使用C ++,我建议使用VS2013创建C ++ / MFC应用程序。 Microsoft基础类(MFC)是一个隐藏了创建和操作窗口的苦差事的框架。它比原始的Win32编程更容易上手。
MSDN有一些tutorials and articles可以帮助您入门。我还发现MFC编程的合理step-by-step guide。如果您搜索MFC编程,您应该找到大量的信息/代码/示例。
由于您使用的是Visual Studio 2013,评论者提出的一条建议不适用于您。有人建议您可以使用C ++ / CLI(它实际上是.NET C ++)。 C ++ / CLI通常是一个垫片,用作C ++开发人员迁移到C#的网关。 Microsoft不再通过IDE为C ++ / CLI应用程序支持Winforms。不再有用于C ++ / CLI的Winforms应用程序项目。如果您有VS2010,则可以通过IDE获得winforms。
如果您正在编写GUI并且不希望将MFC与C ++一起使用,我建议您跳转到C#。找一本关于这个主题的好书。 Microsoft有一个online guide用于Java开发人员迁移到C#。
根据OP的评论,他希望以编程方式做更多事情。有一个由Microsoft创建的解决方案,仍然由开源社区维护。该选项是Windows模板库(WTL)。我个人仍然将它用于轻量级应用,我不希望MFC的开销。它是一组Windows模板,位于顶级ATL(活动模板库)中。 ATL最初被设计为一组C ++模板,用于使用COM构建可重用的二进制组件。
您可以将WTL添加到VS2013(它不再是标准Visual Studio的一部分)。您可以从http://sourceforge.net/projects/wtl/下载WTL。安装不是直接的,但一旦正确安装就可以正常工作。
答案 1 :(得分:0)
Winapi使用普通的C接口,因此没有可用的预制类。
如果你想用C ++编写.net应用程序,你可以使用wpf(Windows Presentation Foundation)或者winsey在他的评论中写的winforms。
如果要开发本机win32 / 64应用程序,则必须使用库/框架。微软有MFC (Microsoft Foundation Classes),但恕我直言,他们很复杂,因此不喜欢他们。
您还可以将跨平台框架看作qt,gtk或wxWidgets。但是,您必须注意许可证(qt可用作GPL,LGPL或商业许可证,因此您必须购买开发人员许可证,将您的代码也置于GPL之下或遵守LGPL)。