PageBaseクラスのSetSplittersメソッドを使います。
ワークブックのオーガナイザや極座標グラフの上部にあるようにダイアログをページに接続する場合、ダイアログバーをページに追加するには、lpcszString は、ダイアログクラスの名前とページウィンドウの位置(上下左右)を含む必要があります。lpcszStringをNULLにセットすると、既存のダイアログバーを削除します。
次のサンプルは、グラフウィンドウにユーザ定義のダイアログを追加および削除する方法を示しています。
ユーザ定義のダイアログのクラス
#include <..\Originlab\DialogEx.h> // OC_REGISTERED キーワードは、このクラスを見つけるために // PageBase::SetSplittersメソッドを許可する必要がある class OC_REGISTERED MyGraphPolarBar : public Dialog { public: // IDD_POLAR_CONTROL はダイアログのリソースID // Odlg8 はダイアログリソースDLLファイル名で、パスが見つからない場合 //デフォルトのパスは OriginC\Originlab MyGraphPolarBar() :Dialog(IDD_POLAR_CONTROL, "Odlg8") { } BOOL CreateWindow(int nID, HWND hWnd) { int nRet = Dialog::Create(hWnd, DLG_AS_CHILD); HWND hWndThis = GetSafeHwnd(); SetWindowLong(hWndThis, GWL_ID, nID); return nRet; } };
グラフウィンドウのダイアログを追加または削除
void Page_SplittersControl(BOOL bShow = TRUE, int nPos = 2) { Page pg = Project.Pages("Graph1"); if( bShow ) { int nPercent = 30; string strDlgClass = "MyGraphPolarBar"; // 上記ダイアログクラス string strConfig; switch(nPos) { case 0: // 下 strConfig.Format("r{%s}r[%s]", (string)nPercent+"%", strDlgClass); break; case 1: // 右 strConfig.Format("c{%s}c[%s]", (string)nPercent+"%", strDlgClass); break; case 2: // 上 strConfig.Format("r[%s]{%d}r", strDlgClass, nPercent); break; case 3: // 左 strConfig.Format("c[%s]{%d}c", strDlgClass, nPercent); break; } pg.SetSplitters(strConfig); } else pg.SetSplitters(NULL); // ページからダイアログバーを削除 }