• <menu id="w2i4a"></menu>
  • logo VectorDraw Developer Framework使用教程

    文檔首頁>>VectorDraw Developer Framework使用教程>>VDF常見問題整理(四十九):VDF的鼠標滾輪控制

    VDF常見問題整理(四十九):VDF的鼠標滾輪控制


    VectorDraw Developer Framework(VDF)是一個用于應用程序可視化的圖形引擎庫。有了VDF提供的功能,您可以輕松地創(chuàng)建、編輯、管理、輸出、輸入和打印2D和3D圖形文件。該庫還支持許多矢量和柵格輸入和輸出格式,包括本地PDF和SVG導出。

    點擊立即下載VectorDraw Developer Framework


    問:

    請問是否可以實現(xiàn)禁用鼠標平移以及鼠標滾輪縮放。在禁用滾輪同時,還想要控制圖形的水平和垂直滾動。怎樣才能做到這一點?

    答:

    禁用鼠標中鍵平移和鼠標滾輪放大/縮?。?/span>

    對于包裝器,我們必須獲取如下的vdDocument對象。

    VectorDraw.Professional.vdObjects.vdDocument doc = vd.ActiveDocument.WrapperObject as VectorDraw.Professional.vdObjects.vdDocument;
    doc.MouseWheelZoomScale = 1.0; 

    1.0表示禁用了鼠標滾輪。 0.8(小于1.0)或1.2(大于1.0)值可以反轉鼠標滾輪功能。
    為了禁用平移,您必須使用JobStart事件,如下所示。

    vd.JobStart += new AxVDrawLib5._DVdrawEvents_JobStartEventHandler(vd_JobStart);
    
    void vd_JobStart(object sender, AxVDrawLib5._DVdrawEvents_JobStartEvent e)
    {if (e.jobName == "BaseAction_ActionPan") e.cancel = 1;}
    要滾動視圖,請使用如下代碼
      ... // these events must be used
                doc.MouseWheelZoomScale = 1.0d; // disable mouse wheel zoom
                
                doc.ActionStart += new vdDocument.ActionStartEventHandler(doc_ActionStart);
                vdFramedControl1.BaseControl.MouseWheel += new MouseEventHandler(BaseControl_MouseWheel);
            ...
    
            void BaseControl_MouseWheel(object sender, MouseEventArgs e)
            {
                if ((e != null) && (e.Delta != 0))
                {
                    vdDocument doc = vdFramedControl1.BaseControl.ActiveDocument;
                    double height = doc.ActiveRender.Height * doc.ActiveRender.PixelSize;
                    double width = doc.ActiveRender.Width * doc.ActiveRender.PixelSize;
                    double stepY = height * (e.Delta / Math.Abs(e.Delta)) / 10.0d;
                    double stepX = width * (-1.0d * e.Delta / Math.Abs(e.Delta)) / 10.0d; 
                    if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
                    { // if Shift key is pressed scroll horizontally
                        doc.ScrollActiveActionRenderView(stepX, 0.0d, true); // scroll only in dX
                    }
                    else //else scroll vertically
                    {
                        doc.ScrollActiveActionRenderView(0.0d, stepY, true); // scroll only in dY
                    }
                }
            }
    
            void doc_ActionStart(object sender, string actionName, ref bool cancel)
            {
                if (actionName == "BaseAction_ActionPan") cancel = true; // cancel middle mouse button pan
            }
            

    以上問答,如果您有任何的疑惑都可以在評論區(qū)留言,我們會及時回復。此系列的問答教程我們會持續(xù)更新,如果您感興趣,可以多多關注本教程。

    熱門文章推薦:

    =======================================================

    如果您對想要購買正版授權VectorDraw Developer Framework(VDF),可以聯(lián)系在線客服>>咨詢相關問題。

    關注慧聚IT微信公眾號 ???,了解產(chǎn)品的最新動態(tài)及最新資訊。

    慧聚IT


    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();