構文
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();
}