タブというのはタブコントロールの事ですか?( タブにもいろいろありますです )
タブコントロール( SysTabControl32 )を前提として、
あるスクリプトのタブ切り替え処理( WM_NOTIFY )の部分コードですが、例えばこんな感じ。
// 子コントロールからの通知メッセージ
*Debug_Notify
dupptr nmhdr, lparam, 12
if( nmhdr == hTabDebug ) && ( nmhdr.2 == TCN_SELCHANGE ){
// 選択タブにリンクされた子ウィンドウのリサイズと表示
TabCtrl_GetCurSel hTabDebug: i = stat
ShowWindow hTabDebugChild.i, SW_SHOW
i ^= 1
ShowWindow hTabDebugChild.i, SW_HIDE
}
return 0
使っている定数は次のとおりです。
#define TCN_FIRST (-550)
#define TCN_SELCHANGE (TCN_FIRST - 1)
#define TCM_FIRST $1300
#define TCM_GETCURSEL (TCM_FIRST + 11)
#define TabCtrl_GetCurSel(%1) sendmsg %1, TCM_GETCURSEL, 0, 0
#define SW_HIDE 0
#define SW_SHOW 5
#define WM_NOTIFY $004E
hTabDebugChild はタブコントロールの各ページに関連付けられた
子ウィンドウのハンドルのリストです。
タブコントロールに TCM_GETCURSEL メッセージを送って現在選択されている
タブのインデックスを取得し、
子ウィンドウリストのインデックスに指定して子ウィンドウを表示/非表示にします。
インデックスを「i ^= 1」としているのはタブコントロールの子ウィンドウが2つだからです。