グラフにコントロールを追加するGraph Page, Attach a User Defined Dialog to It
ワークブックのオーガナイザや極座標グラフの上部にあるようにダイアログをページに接続する場合、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); // ページからダイアログバーを削除
}
|