我想基本上用C++创建一个窗口。它应该有一个像结构一样的控制面板,可以选择切换按钮。按钮的图像应该来自位图,一个用于ON,另一个用于OFF。如何使用GUI在C++中创建框架/窗口?
它应该有这样的单独控制按钮的阵列,等的控制面板。我应该能够打开/关闭。但我必须使用C++来构建这个小应用程序。请引导我开始并继续?
我想基本上用C++创建一个窗口。它应该有一个像结构一样的控制面板,可以选择切换按钮。按钮的图像应该来自位图,一个用于ON,另一个用于OFF。如何使用GUI在C++中创建框架/窗口?
它应该有这样的单独控制按钮的阵列,等的控制面板。我应该能够打开/关闭。但我必须使用C++来构建这个小应用程序。请引导我开始并继续?
你应该对这些一看:
,然后选择取决于您的需要和preferencies。
编辑:
,如果你使用的是Windows,你可以使用WinAPI的。但是你的代码在另一个操作系统中的可移植性很差。
不幸的是,C++中的GUI并不那么简单。
为了实现这一点,您将不得不与OS进行交互,这意味着您需要某种库来使用。
为了更好地回答你的问题(正如评论中提到的那样),你需要确定你的目标是什么样的操作系统?通常的三个是:
随着你给予什么样的信息,虽然: 我建议使用类似的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可能会非常困难)。
看着像wxWidgets的Qt这样的图书馆? – thorsan
任何特定的操作系统?任何框架首选?基于本机还是浏览器? –
@BoPersson Win 7,我不想使用第三方框架。这是一个本地Windows应用程序 –