残念ながら、C++のGUIはあまり簡単ではありません。
これを達成するには、ある時点でOSとやりとりする必要があります。つまり、何らかのライブラリを使用する必要があります。
(あなたのコメントに記載されているように)より適切な質問に答えるには、ターゲットとしているOSの種類を特定する必要があります。通常の3は以下のとおりです。
- Windowsのあなたがが与えられたものな情報で
- マック
- 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は驚くほど難しいかもしれません)。
wxWidgetsのQtのようなライブラリを見ましたか? – thorsan
特定のオペレーティングシステムはありますか?どのフレームワークが優先されますか?ネイティブまたはブラウザベース? –
@BoPersson勝利7、私は第三者のフレームワークを使用しないことをお勧めします。これは、ネイティブのWindowsアプリケーションです –