AddDimension メソッド

構文

BOOL AddDimension(BYTE byDimType, BYTE byDimStyle, BYTE byDimWidth, BYTE byStrAttr, double dStrHeight,
    OLE_COLOR crDimColor, OLE_COLOR crStrColor, LPCTSTR  szStr, BOOL bStringLock, LPCTSTR szFontName,
    VARIANT & vPos);

寸法線を追加します。

パラメータ

byDimType
寸法線のタイプ。次のいずれかの値を指定できます。
  • 0水平。
  • 1垂直。
  • 2平行。
byDimStyle
寸法線の線種。次のいずれかの値を指定できます。
  • 0実線。
  • 1破線。
  • 2点線。
  • 3一点破線。
  • 4二点破線。
  • 5なし。
byDimWidth
寸法線の線幅。
byStrAttr
寸法文字の属性。次のフラグの任意の組み合わせを指定できます。
  • 1斜体。
  • 2太字。
  • 4下線。
dStrHeight
寸法文字のサイズ。
crDimColor
寸法線の色。
crStrColor
寸法文字の色。
szStr
文字列。
bStringLock
文字列をロックするかどうか。1でロックします。
szFontName
フォント名。
vPos
配置位置。(x, y)の 頂点列。型は VT_R8 | VT_ARRAY にしてください。
  • 0始点。
  • 1終点。
  • 2予約。
  • 3始点側の、寸法線の足の、図形側の点。
  • 4始点側の、寸法線の足の、寸法線側の点。
  • 5終点側の、寸法線の足の、図形側の点。
  • 6終点側の、寸法線の足の、寸法線側の点。
  • 7寸法線と足の交点。始点側。
  • 8予約。
  • 9寸法線と足の交点。終点側。
  • 10予約。
  • 11文字位置

戻り値

寸法線を追加できた場合 0 以外を返します。できなかった場合は 0 を返します。

使用例

// 間取りオブジェクトへ接続
CMadoriDoc * m_MadoriDoc = new CMadoriDoc();
CLSIDFromProgID (L"MyHomeDesignerMadori.MadoriDoc", &clsid);
GetActiveObject (clsid, NULL, &pUnk);
pUnk->QueryInterface (IID_IDispatch, (void**)(&pDisp));
m_MadoriDoc->AttachDispatch (pDisp);

// 寸法線を追加
SAFEARRAYBOUND bound[1];
bound[0].cElements = 24;
bound[0].lLbound = 0;
SAFEARRAY * pArray = SafeArrayCreate(VT_R8, 1, bound);
double * pVar;
SafeArrayAccessData(pArray, (void**)&pVar);
double dVertex[24] = {
	0.0, -200.0, // 0:始点
	1000.0, -200.0, // 1:終点 
	0.0, 0.0, // 2:??
	0.0, 0.0, // 3:始点側の、寸法線の足の、図形側の点。
	0.0, 250.0, // 4:始点側の、寸法線の足の、寸法線側の点。
	1000, 0, // 5:終点側の、寸法線の足の、図形側の点。
	1000, 250.0,// 6:終点側の、寸法線の足の、寸法線側の点。
	0, 200, // 7:寸法線と足の交点。始点側。
	0,0, // 8:??
	1000, 200, // 9:寸法線と足の交点。終点側。
	0,0, // 10:??
	500, 260 // 11:文字位置
}; 
for(int i=0; i < 24; ++i){
	pVar[i] = dVertex[i];
}
SafeArrayUnaccessData(pArray);
VARIANT v;
v.vt = VT_R8 | VT_ARRAY;
v.parray = pArray;
OLE_COLOR ocDimColor = (OLE_COLOR)RGB(0,0,128);
OLE_COLOR ocStrColor = (OLE_COLOR)RGB(128,0,128);
BOOL lRet = m_MadoriDoc->AddDimension(0, 0, 0, 0, 400, ocDimColor, ocStrColor, 
	"水平1414", 1, "メイリオ",v);
if(!bRet){
	// エラー
	return;
}