GetGroup メソッド

構文

BOOL GetGroup(BSTR * pstrGroupName,
    DOUBLE * pdXCenter, DOUBLE * pdYCenter, DOUBLE * pdWidth, DOUBLE * pdHeight,     INT * pnGroupKind, BSTR * pstrRoomsetName, BSTR * pstrBunruiName, BSTR * pstrRoomsetComment,     DOUBLE * pdViewRatio);

(JavaScript用) string GetGroupJS();

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

パラメータ

pstrGroupName
グループ名。
pnXCenter
グループの中心のX座標。
pnYCenter
グループの中心のY座標。
pdWidth
グループの幅。
pdHeight
グループの高さ。
pnGroupKind
グループ種類。
pstrRoomsetName
部屋セット名。グループ種類が部屋セット・部分図の場合、設定されます。
pstrBunruiName
分類名。グループ種類が部屋セット・部分図の場合、設定されます。
pstrRoomsetComment
部屋セットのコメント。グループ種類が部屋セット・部分図の場合、設定されます。
pdViewRatio
視点比率。グループ種類が立面図の場合だけ設定されます。

戻り値

グループの情報を取得できた場合 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(_T("何もない"));
	
while (lRet) {
    ULONG uType = m_MadoriDoc->GetCurrentObjectType();
    short nLayer = m_MadoriDoc->GetCurrentObjectLayer();
    CString strMsg;
    strMsg.Format(_T("[%X]type[%d]layer[%d]"), lRet, uType, nLayer);
    AfxMessageBox(strMsg);
    switch (uType) {                        
    case 10:	// group
        BSTR szGroupName = NULL;
        double dXCenter = 0.0;
        double dYCenter = 0.0;
        double dWidth = 0.0;
        double dHeight = 0.0;
        int nGroupKind = 0;
        BSTR szRoomsetName = NULL;
        BSTR szBunruiName = NULL;
        BSTR szRoomsetComment = NULL;
        double dViewRatio;
        if (m_MadoriDoc->GetGroup(&szGroupName, &dXCenter, &dYCenter, &dWidth, &dHeight,
            (long *)&nGroupKind, &szRoomsetName, &szBunruiName, &szRoomsetComment,
            &dViewRatio))
        {
            CString strGroupName, strRoomsetName, strBunruiName, strRoomsetComment;
            if (szGroupName) AfxBSTR2CString(&strGroupName, szGroupName);
            if (szRoomsetName) AfxBSTR2CString(&strRoomsetName, szRoomsetName);
            if (szBunruiName) AfxBSTR2CString(&strBunruiName, szBunruiName);
            if (szRoomsetComment) AfxBSTR2CString(&strRoomsetComment, szRoomsetComment);
                strMsg.Format(_T("Group Name[%s] xPos[%lf] yPos[%lf] width[%lf]  height[%lf]\r\n")
                _T("Kind[%d] RoomsetName[%s] BunruiName[%s] RoomsetComment[%s] dViewRatio[%lf]"),
                strGroupName, dXCenter, dYCenter, dWidth, dHeight,
                nGroupKind, strRoomsetName, strBunruiName, strRoomsetComment, dViewRatio);
            AfxMessageBox(strMsg);
            if (szGroupName) {
                ::SysFreeString(szGroupName);
            }
            if (szRoomsetName) {
                ::SysFreeString(szRoomsetName);
            }
            if (szBunruiName) {
                ::SysFreeString(szBunruiName);
            }
            if (szRoomsetComment) {
                ::SysFreeString(szRoomsetComment);
            }
        }
        else {
            AfxMessageBox(L"データの取得に失敗");
        }          
        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 10: // group
            doc.Select();
            var data = eval(doc.GetGroupJS());
            alert("Result[" + data.Result + "]");
            
            var msg = " GroupName[" + data.GroupName + "]\r\n";
            msg += " XCenter[" + data.XCenter + "]\r\n";
            msg += " YCenter[" + data.YCenter + "]\r\n";
            msg += " Width[" + data.Width + "]\r\n";
            msg += " Height[" + data.Height + "]\r\n";
            msg += " GroupKind[" + data.GroupKind + "]\r\n";
            msg += " RoomsetName[" + data.RoomsetName + "]\r\n";
            msg += " BunruiName[" + data.BunruiName + "]\r\n";
            msg += " RoomsetComment[" + data.RoomsetComment + "]\r\n";
            msg += " ViewRatio[" + data.ViewRatio + "]\r\n";
            alert(msg);
            doc.Unselect();
            break;
	}
	lRet = doc.GetNextObject();
}
ページのTOPへ戻る