タブベースのダイアログの作成
以下の例はタブベースのXファンクションダイアログの作り方を示しています。event1関数はタブが変更されたことをキャッチします。
- F10を押してXファンクションビルダを開きます。Xファンクション編集ボックスに「tabdlg」と入力して、Xファンクションの名前にします。
- 変数パネルでxをクリックして名前をstr1に変更します。データの種類をstringに変更します。オプション文字列をG:-Tab Oneに変更します。パネルの灰色の部分を右クリックして3つの変数を追加し、以下のようにそれらの変数のプロパティを変更します。保存をクリックしてXファンクションを保存します。
- Xファンクションをコードビルダで開き、先頭に以下のコードを追加します。
#include <event_utils.h>
TabDialog_event1に以下のコードを入力します。
//タブ変更のコード if ( GETNE_ON_ACTIVE_TAB_CHANGE == nEventID ) { int nLastTabIndex = -1; if ( !trGetN.GetAttribute(STR_LAST_TAB_INDEX_ATTRIB, nLastTabIndex) ) nLastTabIndex = -1; printf("TabChanged: Old=%d, New=%d\n", nLastTabIndex, nRow); trGetN.SetAttribute(STR_LAST_TAB_INDEX_ATTRIB, nRow); }
TabDialog_before_executeに以下のコードを入力します。
if ( is_xf_startup(nGetNDialog, dwCntrl) ) { STATS_GETN_GROUPED_SUBNODES_AS_TABS; //タブでブランチを表示する GETN_ENABLE_TABCHANGE_EVENT(trGetN, true); //タブ変更のイベントを有効にする }
ボタンをクリックします。
- コマンドウィンドウでtabdlg -dを実行してダイアログを開きます。タブの切り替えでイベントが発生し、"TabChanged: Old=-1, New=2"のようなメッセージが表示されます。
