www.mxdraw.com
内容索引主面
前一个向上下一个
_DMxDrawX::ImpDynWorldDrawFun 数据 成员

动态施放绘制事件回调函数指针

IDL
[id(240) , helpstring("property ImpDynWorldDrawFun"), hidden, nonbrowsable]
IDispatch* ImpDynWorldDrawFun;

例如:JS 例子

            // 调用地方


                    function DynInsert() {
                        var sBlkName = "Tree";
                        var sBlkFile = mxOcx.GetOcxAppPath() + "\Blk\树.dwg";
                        mxOcx.InsertBlock(sBlkFile, "Tree");


                        var getPt = mxOcx.NewComObject("IMxDrawUiPrPoint");
                        getPt.message = "点取插入点";

                        var spDrawData1 = getPt.InitUserDraw("TestDynDraw1");
                        spDrawData1.SetString("BlkName","Tree");

                        if (getPt.go() != 1) {
                            return;
                        }

                        var frstPt = getPt.value();
                        if (frstPt == null) {

                            return;
                        }


                        var getSecondPt = mxOcx.NewComObject("IMxDrawUiPrPoint");

                        var spDrawData = getSecondPt.InitUserDraw("TestDynDraw");


                        getSecondPt.message = "点取旋转角度";
                        getSecondPt.basePoint = frstPt;
                        getSecondPt.setUseBasePt(true);

                        spDrawData.SetPoint("pt1", frstPt);




                        spDrawData.SetString("BlkName", "Tree");

                        if (getSecondPt.go() != 1) {

                            return;
                        }


                        var ret = spDrawData.Draw();

                        // 给属性块写文字.
                        var blkRef = ret.AtObject(0);

                        if (blkRef != null)
                        {
                                var param = mxOcx.NewResbuf();
                                blkRef.SetProp("createAttribute",param);
                        }
                    }

            // 设置回调函数
            document.getElementById("MxDrawXCtrl").ImpDynWorldDrawFun = DoDynWorldDrawFun;

            // 函数实现代码
            function DoDynWorldDrawFun(dX,dY,pWorldDraw,pData)
            {


                var sGuid = pData.Guid;

                mxOcx.SetEventRet(0);
                if(sGuid == "TestDynDraw")
                {
                    // 动态插入图块。
                    var firstPt =  pData.GetPoint("pt1");
                    if(firstPt == null)
                        return;

                    var sBlkName =  pData.GetString("BlkName");

                    var secondPt = mxOcx.NewPoint();

                    secondPt.x = dX;
                    secondPt.y = dY;

                    var vec = firstPt.SumVector(secondPt);
                    var dAng = vec.Angle();

                    pWorldDraw.DrawBlockReference(firstPt.x,firstPt.y,sBlkName,1.0,dAng * 180.0 / 3.14159265 + 90.0);

                    mxOcx.SetEventRet(1);
                }
                else if (sGuid == "TestDynDraw1") {
                    var sBlkName = pData.GetString("BlkName");
                    pWorldDraw.DrawBlockReference(dX, dY, sBlkName, 1.0, 0.0);
                }
            }
Copyright (c) 2010. All rights reserved.
你认为该帮助怎么样? 发送反馈信息!