|
本サイトは移転しました。旧アドレスからのリダイレクトは2025年03月31日(月)まで有効です。
|
🛈 | ✖ |
グラフィカルユーザーインターフェース(GUI)はグラフィックスとマウスなどによる図を活用したユーザーインターフェース。
グラフィカルユーザーインターフェース(GUI)はダグラス・エンゲルバートがデモンストレーション(1968年)し、アラン・ケイが著したダイナブック構想(1972年)とその試作品と言えるゼロックスAlto(1973年)を経由して、アップルマッキントッシュ(1984年)とマイクロソフトウィンドウズ2.0(1987年)に結実する。ユニックスライクではXウィンドウシステム(1984年)ベースのMotif(1989年)、KDE(1998年)、GNOME(1999年)などがある。
"ウィンドウ"の一般的な定義はディスプレイ画面(デスクトップ)に表示される移動、サイズ変更、オーバーラップ可能な矩形図形で、アプリケーションは一つ以上のウィンドウを通じてユーザーと対話する。"ウィンドウ"は"フレーム"や"フォーム"とも呼ばれる。"ウィンドウ"の部品であるボタンやテキストボックスなどは"コントロール"と呼ばれる。"コントロール"は"ウィジェット"とも呼ばれる。アプリケーション開発では"ウィンドウ"と"コントロール"を合わせて"ウィンドウ"と扱う事が多い。
ウィンドウズAPIは作成関数(CreateWindow、CreateWindowEx)仮引数dwStyleで以下のウィンドウを作成する。詳細定義は仮引数lpClassNameに与えるウィンドウクラス名による。アプリケーションはウィンドウベースでイベント駆動される。
dwStyle | ウィンドウ | 定義 | 例 |
---|---|---|---|
WS_OVERLAPPED | オーバーラップ | 一般的定義の"ウィンドウ" | メインウィンドウ |
WS_POPUP | ポップアップ | 一時的に表示されるオーバーラップウィンドウ | ダイアログ |
WS_CHILD | 子 | "コントロール" | ボタン、テキストボックスなど |
wxWidgetsライブラリはC++クラス継承を用いてウィンドウを定義する。フレーム(wxFrame)がオーバーラップウィンドウ(WS_OVERLAPPED)、ダイアログ(wxDialog)がポップアップウィンドウ(WS_POPUP)に相当し、両者を合わせてトップレベルウィンドウ(wxTopLevelWindow)とする。コントロール(wxControl)は子ウィンドウ(WS_CHILD)に相当する。イベント駆動はライブラリが隠蔽する。
クラス(基底→派生) | 定義 | ||
---|---|---|---|
wxWindow | wxTopLevelWindow | wxFrame | フレーム |
wxDialog | ダイアログ | ||
wxControl | wxButton | ボタン | |
wxTextCtrl | テキストボックス | ||
... | ... |
デスクトップアプリケーションはオーバーラップウィンドウ(フレーム)またはポップアップウィンドウ(ダイアログ)をメインウィンドウとしてデスクトップに表示する。前者をメインウィンドウとするアプリケーションをフレームベース、後者をダイアログベースと定義する。本サイトが使用する統合開発環境Code::BlocksのwxWidgetsプロジェクトウィザードはどちらかを選択する。