自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

全面分析VB.NET MOVE命令

開發(fā) 后端
這里介紹要等待VB.NET MOVE命令的執(zhí)行結(jié)束(使用CommandEnded事件),這時(shí)就可以安全地修改對(duì)象了。當(dāng)然,任何對(duì)塊索引的修改將會(huì)觸發(fā)ObjectOpenedForModify事件。

本章的目的是解釋AutoCAD事件怎樣才能被用于控制AutoCAD圖形中的行為。我們不想讓用戶能改變EMPLOYEE塊索引的位置,而對(duì)于其它的非EMPLOYEE塊索引的位置則沒(méi)有這個(gè)限制。我們將混合使用數(shù)據(jù)庫(kù)與文檔事件來(lái)做到這一點(diǎn)。

#t#首先,我們想要監(jiān)視將要被執(zhí)行的AutoCAD命令(使用CommandWillStart事件)。特別地,我們要監(jiān)視VB.NET MOVE命令。另外,當(dāng)一個(gè)對(duì)象要被修改時(shí),我們應(yīng)該被通知(使用ObjectOpenedForModify事件),這樣我們可以確定它是否為一個(gè)EMPLOYEE塊索引。如果這時(shí)就修改對(duì)象可能是無(wú)效的,因?yàn)槲覀兊男薷目赡軙?huì)再次觸發(fā)事件,從而引起不穩(wěn)定的行為。所以,我們要等待VB.NET MOVE命令的執(zhí)行結(jié)束(使用CommandEnded事件),這時(shí)就可以安全地修改對(duì)象了。當(dāng)然,任何對(duì)塊索引的修改將會(huì)觸發(fā)ObjectOpenedForModify事件。我們還需要設(shè)置一些全局變量來(lái)表明一個(gè)VB.NET MOVE命令在運(yùn)行和被修改的對(duì)象是一個(gè)EMPLOYEE塊索引。

注意:因?yàn)楸菊滦枰容^多的代碼來(lái)獲得想要的結(jié)果,所以我們不會(huì)解釋任何與事件處理無(wú)關(guān)的代碼,而只是將它們粘貼到事件處理函數(shù)中。這里的重點(diǎn)是成功創(chuàng)建和注冊(cè)事件處理函數(shù)。

創(chuàng)建新工程

我們以第六章的工程開始。請(qǐng)新加入一個(gè)類AsdkClass2。我們還要加入四個(gè)全局變量。前兩個(gè)是Boolean型的:一個(gè)用來(lái)表示我們監(jiān)視的命令是否是活動(dòng)的,另外一個(gè)用來(lái)表示ObjectOpenedForModify事件處理函數(shù)是否該被忽略。

  1. '全局變量  
  2. Dim bEditCommand As Boolean  
  3. Dim bDoRepositioning As Boolean 

接下來(lái),我們要聲明一個(gè)全局變量來(lái)表示一個(gè)ObjectIdCollection,它用來(lái)存儲(chǔ)我們所選擇的要修改的對(duì)象的ObjectID。

  1. Dim changedObjects As New ObjectIdCollection() 

最后,我們要聲明一個(gè)全局變量來(lái)表示一個(gè)Point3dCollection,它用來(lái)包含我們所選對(duì)象的位置(三維點(diǎn))。

  1. Dim employeePositions As New Point3dCollection() 

創(chuàng)建第一個(gè)文檔事件處理函數(shù)(回調(diào)函數(shù))

現(xiàn)在我們要?jiǎng)?chuàng)建一個(gè)事件處理函數(shù)。當(dāng)AutoCAD命令開始執(zhí)行的時(shí)候它會(huì)通知我們。我們要檢查GlobalCommandName的值是否為MOVE。

  1. If e.GlobalCommandName = "MOVE" Then  
  2. 'Set the global variables  
  3. 'Delete all stored information  
  4. End If 

如果VB.NET MOVE命令開始執(zhí)行的話,我們要相應(yīng)地設(shè)置Boolean變量bEditCommand的值,這樣我們可以知道我們所監(jiān)視的命令是活動(dòng)的。同樣地,我們應(yīng)該把另外一個(gè)Boolean變量bDoRepositioning設(shè)置為false來(lái)忽略O(shè)bjectOpenedForModify事件處理函數(shù)。兩個(gè)變量設(shè)置好以后,在命令活動(dòng)期間,我們必須要獲得所選塊索引的信息。

我們還應(yīng)該把兩個(gè)集合對(duì)象的內(nèi)容清空。我們只關(guān)心當(dāng)前選擇的對(duì)象。

責(zé)任編輯:佚名 來(lái)源: IT168
相關(guān)推薦

2009-10-28 10:04:53

VB.NET XmlW

2009-11-02 15:57:36

VB.NET WEB

2009-10-15 10:57:16

VB.NET Text

2009-10-14 15:20:21

VB.NET窗體指針

2009-10-29 15:16:02

VB.NET文件傳送

2009-10-27 09:45:03

VB.NET數(shù)組

2009-10-16 13:04:57

VB.NET字符串?dāng)?shù)組

2009-10-28 17:44:31

VB.NET語(yǔ)言

2009-11-02 14:48:45

VB.NET HOOK

2009-11-10 16:46:52

VB.NET指針應(yīng)用

2009-10-15 11:42:05

VB.Net賦值語(yǔ)句

2009-11-02 17:12:01

VB和VB.NET

2009-10-21 09:10:52

VB.NET壓縮

2009-10-20 17:38:20

VB.NET exce

2009-11-10 16:20:25

VB.NET全局熱鍵

2009-10-29 11:26:28

VB.NET調(diào)用Web

2009-10-15 17:50:48

VB.NET調(diào)用API

2009-10-09 17:40:38

VB.Net問(wèn)題集

2010-01-12 17:54:42

VB.NET Dlli

2009-10-28 14:34:44

VB.NET Tree
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)