FOX GUI キット 〜ボタン〜

 今回の FOX のツールキットはボタンを設置してみます。
と言っても非常に簡単です。たった一行追加するだけでボタンをメインウィンドウに設定出来ます。
FXButton *  button = new FXButton (main_window, "button test. please, push!");
上の一行を FXMainWindow を作成した後ら辺に挿入するだけでボタンが設定出来ます。
ここで大事なのは FXButton () の第一引数に指定されている main_window ですが、これが作成するボタンの親ウィンドウになります。
ボタン作成には動的に new で確保していますが親ウィンドウに作成されたウィンドウの所有権がありますのでこの親ウィンドウが破棄されると同時にこのボタンも破棄されます。今回のソースは以下です。
// FOX ライブラリを使用する場合はプロジェクトは Win32 アプリケーションで作成し
// アプリケーションのエントリポイントを "mainCRTStartup" に設定する必要がある

// ライブラリのリンク指定に #pragma を使用しているがこれは VC のみ有効です

#include <fx.h>

// FOX ライブラリのリンク指定
#if defined (_DEBUG)
#pragma comment (lib, "FOXD-1.1.lib")
#else  // _DEBUG
#pragma comment (lib, "FOX-1.1.lib")
#endif // _DEBUG

// FOX ライブラリではこの "comctl32.lib" を使用するらすぃ
#pragma comment (lib, "comctl32.lib")

int main (int argc, char * argv [])
{
  // FOX ライブラリを使用したプログラムには必ずこのオブジェクトが一つ必要です
  FXApp application ("basic", "toon");

  // コマンドラインを解析しアプリケーションを初期化します
  application.init (argc, argv);

  // メインウィンドウを生成しアプリケーションに関連付けします
  // ここで作成されたメインウィンドウは FXApp によって自動的に delete されます
  // ただし今回は FXMainWindow::show () を呼び出さないとウィンドウが表示されないので
  // ポインタを保持して後から FXMainWindow::show () を呼び出しています
  FXMainWindow * main_window = new FXMainWindow (&application, "basic", NULL, NULL, DECOR_ALL, -1, -1, 640, 480);

  // FXMainWindow を親に持つボタンを作成
  // 今の所はボタン押下に対応したハンドラはなしです
  FXButton *  button = new FXButton (main_window, "button test. please, push!");

  // アプリケーションオブジェクトを作成しメッセージ処理の開始準備を行います
  application.create ();

  // メインウィンドウを表示します
  main_window->show (PLACEMENT_SCREEN);

  // メッセージ処理の開始
  return application.run ();
} // main