AddZone メソッド

構文

BOOL AddZone(VARIANT & vVertex,
    int nZoneLevel, LPCTSTR szZoneName, long bDispZoneName, long bDispZoneSize,
    double nStringPosX, double nStringPosY, double dCapacitySeats,
    unsigned char byLineStyle, unsigned char byLineWidth, unsigned long ocLineColor,
    unsigned char byHatchStyle, unsigned char byHatchWidth,
    unsigned long ocForeColor, unsigned long ocBackColor, long bBackTrans,
    LPCTSTR szFontName, double dFontSize, unsigned char byFontAttr,
    double dFontAngle, unsigned long ocFontColor);

頂点列を指定して、図面にゾーンを追加します。

パラメータ

vVertex
(x, y) 頂点列。型は VT_R8 | VT_ARRAY にしてください。
nZoneLevel
ゾーンの種類。次のいずれかの値を指定できます。
  • 0ゾーン
  • 1エリア
  • 2スペース
szZoneName
ゾーン名。
bDispZoneName
ゾーン名を表示するかどうか。0で表示しません。1で表示します。
bDispZoneSize
ゾーンのサイズを表示するかどうか。0で表示しません。1で表示します。
dStringPosX
ゾーン名の表示位置X座標。
dStringPosY
ゾーン名の表示位置Y座標。
dCapacitySeats
収容人数。
byLineStyle
線の種類。次のいずれかの値を指定できます。
  • 0実線。
  • 1破線。
  • 2点線。
  • 3点線鎖線。
  • 4二点鎖線。
  • 5なし。
byLineWidth
線の幅。次のいずれかの値を指定できます。
  • 0細線1(0.10mm)。
  • 1細線2(0.13mm)。
  • 2中線1(0.18mm)。
  • 3中線2(0.20mm)。
  • 4太線1(0.25mm)。
  • 5太線2(0.35mm)。
  • 4極太線1(0.50mm)。
  • 4極太線2(0.70mm)。
ocLineColor
線の色。
byHatchStyle
模様の種類。次のいずれかの値を指定できます。
  • 0なし。
  • 1塗りつぶし。
  • 2水平ハッチ。
  • 3垂直ハッチ。
  • 4右下がりハッチ。
  • 5右上がりハッチ。
  • 6水平と垂直の格子ハッチ。
  • 7斜め格子ハッチ。
  • 8ドット1。
  • 9ドット2。
  • 10ドット3。
  • 11ウェーブ1。
  • 12ウェーブ2。
  • 13ウェーブ3。
  • 14斜線1。
  • 15斜線2。
  • 16破線1。
  • 17破線2。
  • 18板目。
  • 19グラデーション横1。
  • 20グラデーション横2。
  • 21グラデーション縦1。
  • 22グラデーション縦2。
  • 23グラデーション右上。
  • 24グラデーション左上。
  • 25グラデーション中心。
  • 26グラデーション右上。
  • 27グラデーション右下。
  • 30半透明。
  • 40水平ハッチ。2の水平ハッチより目が細かい。
  • 41垂直ハッチ。3の垂直ハッチより目が細かい。
  • 42水平と垂直の格子ハッチ。6のハッチより目が細かい。
ocForeColor
前景色。
ocBackColor
背景色。
bBackTrans
背景を透明にするかどうか。0で不透明、1で透明。
szFontName
部屋名、部屋サイズの表示フォント名。
dFontSize
部屋名、部屋サイズの表示フォントサイズ。
byFontAttr
部屋名、部屋サイズの表示フォント属性。次のフラグの任意の組み合わせを指定できます。
  • 1斜体。
  • 2太字。
  • 4下線。
dFontAngle
部屋名、部屋サイズの表示角度。
ocFontColor
部屋名、部屋サイズの表示色。

戻り値

ゾーンを追加できた場合 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 = 8;
bound[0].lLbound = 0;
SAFEARRAY * pArray = SafeArrayCreate(VT_R8, 1, bound);
double * pVar;
SafeArrayAccessData(pArray, (void**)&pVar);
double dVertex[8] = { 0.0, 0.0,  2730.0, 0.0,  2730.0, 2730.0,  0.0, 2730.0 };
for (int i = 0; i < 8; ++i) {
	pVar[i] = dVertex[i];
}
SafeArrayUnaccessData(pArray);
VARIANT v;
v.vt = VT_R8 | VT_ARRAY;
v.parray = pArray;
int nZoneLevel = 0;
LPCTSTR  szZoneName = L"テストゾーン";
BOOL bDispZoneName = true;
BOOL bDispZoneSize = true;
double dStringPosX = 1.0;
double dStringPosY = 1.0;
double dCapacitySeats = 10.0;
unsigned char byLineStyle = 4;
unsigned char byLineWidth = 2;                        
OLE_COLOR crLineColor = (OLE_COLOR)RGB(255, 255, 0);
unsigned char byHatchStyle = 1;
unsigned char byHatchWidth = 1;
OLE_COLOR crForeColor = (OLE_COLOR)RGB(208, 213, 191);
OLE_COLOR crBackColor = (OLE_COLOR)RGB(0, 0, 255);
BOOL bBackTrans = FALSE;
LPCTSTR szFontName = _T("メイリオ");
double dFontSize = 10;
unsigned char byFontAttr = 0;
double dFontAngle = 0;
OLE_COLOR crFontColor = (OLE_COLOR)RGB(0, 0, 0);
long lRet = m_MadoriDoc->AddZone(v,
	nZoneLevel, szZoneName, bDispZoneName, bDispZoneSize,
	dStringPosX, dStringPosY, dCapacitySeats, byLineStyle, byLineWidth, crLineColor,
	byHatchStyle, byHatchWidth, crForeColor, crBackColor, bBackTrans,
	szFontName, dFontSize, byFontAttr, dFontAngle, crFontColor);
	
if (lRet) AfxMessageBox(_T("OK"), MB_ICONINFORMATION);
else AfxMessageBox(_T("失敗"));
SafeArrayDestroy(pArray);
// JavaScript sample
function rgb(r, g, b){
	var col = r + (g << 8) + (b << 16);
	return col;
}

var doc = new CMadoriDoc();

    
var vertex = [0.0, 0.0, 2730.0, 0.0, 2730.0, 2730.0, 0.0, 2730.0];
var nZoneLevel = 0;
var szZoneName = "テストゾーン";
var bDispZoneName = true;
var bDispZoneSize = true;
var dStringPosX = 1.0;
var dStringPosY = 1.0;    
var dCapacitySeats = 10.0;
var byLineStyle = 4;
var byLineWidth = 2;
var ocLineColor = rgb(255, 255, 0);
var byHatchStyle = 1;
var byHatchWidth = 1; 
var crForeColor = rgb(208, 213, 191);
var crBackColor = rgb(0, 0, 255);
var bBackTrans = false;
var szFontName = "メイリオ";
var dFontSize = 10;
var byFontAttr = 0;
var dFontAngle = 0;
var crFontColor = rgb(0, 0, 0);
var result = doc.AddZone(vertex,
    nZoneLevel, szZoneName, bDispZoneName, bDispZoneSize, dStringPosX, dStringPosY,
    dCapacitySeats, byLineStyle, byLineWidth, ocLineColor, byHatchStyle, byHatchWidth,
    crForeColor, crBackColor, bBackTrans,
    szFontName, dFontSize, byFontAttr, dFontAngle, crFontColor);
alert(result);