グラフにコントロールを追加する

ワークブックのオーガナイザや極座標グラフの上部にあるようにダイアログをページに接続する場合、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);	// ページからダイアログバーを削除
	
}