アプリケーションオブジェクト | : |
アプリケーションを制御するオブジェクトで、アプリケーションに一つ絶対に必要です。 ウインドウオブジェクトの管理等を行います。 BApplicationクラスを継承して作成します。 |
ウインドウオブジェクト | : |
ずばり、ウインドウそのものです。 ビューオブジェクトを貼り付ける親になります。 |
ビューオブジェクト | : |
ウインドウに表示するオブジェクトです。 ウインドウには、ボタンやテキストコントロール等のビューオブジェクトを貼り付けて表示・操作します。 |
/**** ファイル名 : MainWindow.h ****/
#include <Be.h> //--------------------------------------------------------------------- class BAppMainWindow : public BWindow { public: BAppMainWindow(BRect frame,const char *title); //----------------------------------------------------------------- bool QuitRequested() { be_app->PostMessage(B_QUIT_REQUESTED); return true; }; }; //--------------------------------------------------------------------- class BaseApp : public BApplication { public: BaseApp() :BApplication("application/x-vnd.vow-baseapp") { BAppMainWindow *mainwnd= new BAppMainWindow(BRect(100,100,299,219), "Base Application"); mainwnd->Show(); }; }; //---------------------------------------------------------------------
/**** ファイル名 : MainWindow.cpp ****/
#include "MainWindow.h" //--------------------------------------------------------------------- BAppMainWindow::BAppMainWindow(BRect frame,const char *title) :BWindow(frame,title,B_TITLED_WINDOW,0) { } //--------------------------------------------------------------------- int main(void) { new BaseApp(); be_app->Run(); delete be_app; return true; } //---------------------------------------------------------------------
基本的な設定が含まれている、ヘッダファイル「Be.h」を読み込みます。/**** ファイル名 : MainWindow.h ****/
#include <Be.h>
ウインドウオブジェクトのクラス「BWindow」を継承して、BAppMainWindowクラスを作ります。class BAppMainWindow : public BWindow { public: BAppMainWindow(BRect frame,const char *title); //----------------------------------------------------------------- bool QuitRequested() { be_app->PostMessage(B_QUIT_REQUESTED); return true; }; };
be_app | : | main関数で作成したアプリケーションオブジェクトにアクセスすることのできるグローバル変数です。この変数は、起動時に自動的に設定されるため、初期化の必要はありません。 |
B_QUIT_REQUESTED | : |
アプリケーションを終了するように要求された際に受信するメッセージです。 このメッセージをアプリケーションオブジェクトに渡すことで、アプリケーションを終了します。 |
アプリケーションオブジェクトのクラス「BApplication」を継承して、BaseAppクラスを作ります。class BaseApp : public BApplication { public: BaseApp() :BApplication("application/x-vnd.vow-baseapp") { BAppMainWindow *mainwnd= new BAppMainWindow(BRect(100,100,299,219), "Base Application"); mainwnd->Show(); }; };
MainWindows.hを読み込みます。/**** ファイル名 : MainWindow.cpp ****/
#include "MainWindow.h"
BAppMainWindowクラスのコンストラクタを実装します。BAppMainWindow::BAppMainWindow(BRect frame,const char *title) :BWindow(frame,title,B_TITLED_WINDOW,0) { }
この関数が、プログラムの開始点になります。int main(void) { new BaseApp(); be_app->Run(); delete be_app; return true; }