構文
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 を返します。
使用例
// C++ sample
// 間取りオブジェクトへ接続
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, 1000.0, // 0:始点
1000.0, 1000.0, // 1:終点
0.0, 0.0, // 2:寸法線を引く位置
0.0, 1000.0, // 3:始点側の、寸法線の足の、図形側の点。
0.0, 0.0, // 4:始点側の、寸法線の足の、寸法線側の点。
1000, 1000.0, // 5:終点側の、寸法線の足の、図形側の点。
1000, 0.0,// 6:終点側の、寸法線の足の、寸法線側の点。
0,0, // 7:寸法線と足の交点。始点側。
0,0, // 8:??
1000, 0, // 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;
}
// JavaScript sample
function rgb(r, g, b){
var col = r + (g << 8) + (b << 16);
return col;
}
var doc = new CMadoriDoc();
doc.SetDispDimension(1);
var v = [
0.0, 1000.0, // 0:始点
1000.0, 1000.0, // 1:終点
0.0, 0.0, // 2:寸法線を引く位置
0.0, 1000.0, // 3:始点側の、寸法線の足の、図形側の点。
0.0, 0.0, // 4:始点側の、寸法線の足の、寸法線側の点。
1000, 1000.0, // 5:終点側の、寸法線の足の、図形側の点。
1000, 0.0,// 6:終点側の、寸法線の足の、寸法線側の点。
0,0, // 7:寸法線と足の交点。始点側。
0,0, // 8:??
1000, 0, // 9:寸法線と足の交点。終点側。
0,0, // 10:??
500, 260 // 11:文字位置
];
var ocDimColor = rgb(0,0,128);
var ocStrColor = rgb(128,0,128);
var result = doc.AddDimension(0, 0, 0, 0, 400, ocDimColor, ocStrColor,
"水平1414", 1, "メイリオ",v);
alert(result);