パソコンでプログラミングしよう ウィンドウズC++プログラミング環境の構築
1.6.3.6(15)
グラフィカルユーザーインターフェース

グラフィカルユーザーインターフェース(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::BlockswxWidgetsプロジェクトウィザードはどちらかを選択する。