GetEllipse メソッド

構文

BOOL GetEllipse(double* dXPos, double* dYPos, double* dWidth, double* dHeight, BYTE* byLineStyle,
     BYTE* byLineWidth, OLE_COLOR* ocLineColor, BYTE* byHatchStyle, OLE_COLOR* ocForeColor,
     OLE_COLOR* ocBackColor, LONG* bBackTrans);

(JavaScript用) string GetEllipseJS();

カレントのオブジェクトが、楕円の場合、その情報を取得します。

パラメータ

dXPos
楕円の中心のX座標。
dYPos
楕円の中心のY座標。
dWidth
楕円全体の幅。
dHeight
楕円全体の高さ。
byLineStyle
線種。次のいずれかの値です。
  • 0実線。
  • 1破線。
  • 2点線。
  • 3一点破線。
  • 4二点破線。
  • 5なし。
byLineWidth
線幅。
crLineColor
線色。
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のハッチより目が細かい。
crForeColor
前景色。
crBackColor
背景色。
bBackTrans
背景を透明にするかどうか。0で不透明、1で透明。

戻り値

楕円の情報を取得できた場合 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);

// 列挙する
long lRet = m_MadoriDoc->GetTopObject();
if(lRet == 0) AfxMessageBox(TEXT("何もない"));

while(lRet){
	ULONG uType = m_MadoriDoc->GetCurrentObjectType();
	short nLayer = m_MadoriDoc->GetCurrentObjectLayer();
	CString strMsg;
	strMsg.Format(TEXT("[%X]type[%d]layer[%d]"), lRet, uType,nLayer);
	AfxMessageBox(strMsg);

	switch(uType){
	case 53: // ellipse
		{
		double dXPos, dYPos, dWidth, dHeight;
		unsigned char byLineStyle, byLineWidth;
		unsigned long ocLineColor;
		unsigned char byHatchStyle;
		unsigned long ocForeColor, ocBackColor;
		unsigned short bBackTrans;
		m_MadoriDoc->GetEllipse(&dXPos, &dYPos, &dWidth, &dHeight, &byLineStyle, &byLineWidth,
			&ocLineColor, &byHatchStyle, &ocForeColor, &ocBackColor, &bBackTrans);
		strMsg.Format(TEXT("Ellipse xpos[%lf]ypos[%lf]width[%lf]height[%lf]lineStyle[%d]width[%d]col[%x]")
			TEXT("hatch[%d]for[%x]back[%x]trans[%d]"),
			dXPos, dYPos, dWidth, dHeight, byLineStyle, byLineWidth, ocLineColor,
			byHatchStyle, ocForeColor, ocBackColor, bBackTrans);
		AfxMessageBox(strMsg);
		}
		break;
	}
	lRet = m_MadoriDoc->GetNextObject();
}

// JavaScript sample
var doc = new CMadoriDoc();
var lRet = doc.GetTopObject();

while(lRet)
{
	var uType =doc.GetCurrentObjectType();
	alert(uType);
	switch (uType)
	{
	case 53: // ellipse
		var data = eval( doc.GetEllipseJS() );
		var msg = " Result[" + data.Result + "]";
		alert(msg);
		msg = " Center[" + data.XCenter + ", " + data.YCenter + "]\n" +
		      " Width[" + data.Width + "]\n" +
		      " Height[" + data.Height + "]\n" +
		      " LineStyle[" + data.LineStyle + "]\n" +
		      " LineWidth[" + data.LineWidth + "]\n" +
		      " LineColor[" + data.LineColor + "]\n" +
		      " HatchStyle[" + data.HatchStyle + "]\n" +
		      " ForeColor[" + data.ForeColor + "]\n" +
		      " BackColor[" + data.BackColor + "]\n" +
		      " BackTrans[" + data.BackTrans + "]";
		alert(msg);
		break;
	}
	lRet = doc.GetNextObject();
}