2016-07-28 64 views
-1

我想基本上用C++创建一个窗口。它应该有一个像结构一样的控制面板,可以选择切换按钮。按钮的图像应该来自位图,一个用于ON,另一个用于OFF。如何使用GUI在C++中创建框架/窗口?

enter image description here

它应该有这样的单独控制按钮的阵列,等的控制面板。我应该能够打开/关闭。但我必须使用C++来构建这个小应用程序。请引导我开始并继续?

+2

看着像wxWidgets的Qt这样的图书馆? – thorsan

+0

任何特定的操作系统?任何框架首选?基于本机还是浏览器? –

+0

@BoPersson Win 7,我不想使用第三方框架。这是一个本地Windows应用程序 –

回答

0

你应该对这些一看:

  • 的Qt
  • GTK +
  • wxWidgets的

,然后选择取决于您的需要和preferencies。

编辑:

,如果你使用的是Windows,你可以使用WinAPI的。但是你的代码在另一个操作系统中的可移植性很差。

-1

不幸的是,C++中的GUI并不那么简单。

为了实现这一点,您将不得不与OS进行交互,这意味着您需要某种库来使用。

为了更好地回答你的问题(正如评论中提到的那样),你需要确定你的目标是什么样的操作系统?通常的三个是:

  • 的Windows
  • 的Mac
  • Linux的

随着你给予什么样的信息,虽然: 我建议使用类似的SFML Library什么的。有教程可用,它跨平台很好。要打开一个窗口,您只需实例化一个类,如下所示:

sf::Window window(sf::VideoMode(800, 600), "My window"); 

绘制按钮有点困难。 许多图书馆提供他们自己的解决方案,所以我会避免给出一个具体的例子,下面只是伪代码。 虽然在一般,你想捕捉,当用户点击,然后在屏幕上得到他们的鼠标/指针位置(X,Y),并检查其对按钮的矩形的每个角落的边界:

if (ButtonPressed()) 
{ 
    int currentX = GetMousePositionX(); 
    int currentY = GetMousePositionY(); 

    if (currentX > button.Left() && 
     currentX < button.Right() && 
     currentY > button.Top() && 
     currentY < button.Bottom()) 
    { 
     // The button is pressed 
    } 
} 

上面的代码示例假定MousePosition从窗口左上角的0,0开始,不同的库有不同的做法。所以你需要检查你使用的库是如何实现的。你可能也想考虑完全在GUI之前(如果这实际上只是一个小项目,C++中的GUI可能会非常困难)。

相关问题