VI. Làm v ic vi Group
1. Menugroup collection MenuGroups Collection
Tất cả các menu đ ợc load trong session hiện tai của AutoCAD đ ợc l u cất trong MenuGroup collection. Các menu này có thể đ ợc hiển thị hoặc không đ ợc hiển thị trên menu bar của Autocad. Ng ời dùng có thểđiều khiển sự hiển thị của các menu thông qua lệnh MenuLoad trong Autocad. Mỗi một menu MenuGroup object cung cấp tất cả các toolbar and pop-up menu có trong Group đó.
Loading Menu Groups
Ph ơng thức Load của MenuGroup collection dùng để tải một menu group đ ợc ch a trong các file ( .mnc, .mns, or .mnu ) vào Autocad. Cú pháp của lệnh này nh sau :
Set MenuGroupObject = MenuGroupsCollection.Load (MenuFileName [,BaseMenu]) NAME DATA
TYPE
DESCRIPTION
MenuFileName String Đ ờng dẫn và tên File sẽđ ợc tải vào AutoCad.
BaseMenu Boolean Thông số này xác định menu group đ ợc tải là menu
cơ bản hay menu từng phần. Gia trị True là base menu. Ng ợc lại sẽ là partial menu. Mặc định là False.
Sử dụng tham số BaseMenu với giá trị True sẽ t ơng đ ơng với việc thực hiện lệnh MENU trong AutoCAD (hoặc thi hành lệnh MENULOAD và check vào lựa chọn Replace All). Chỉ MenuGroup mới mới đ ợc Load và nó sẽ thay thế tất cả các menu cũ trong AutoCad.
Nh một lựa chọn, sử dụng ph ơng thức Load Với tham số BaseMenu là False, t ơng đ ơng với bạn thi hành lệnh MENULOAD trong AutoCAD mà không check vào lựa chọn. Replace All. Menu group đ ợc
tải thêm vào AtutoCad.
Ki u c a Menu Groups BỘ MÔN TIN HỌC XÂY DỰNG KHOA CÔNG NGHỆ THÔNG TIN TRƯỜNG ĐẠ I HỌC XÂY DỰNG
Để lấy thông số kiểu của menu groups đã đ ợc tải vào trong AutoCAD, bạn có thể sử dụng thuộc tính Type cho mỗi MenuGroup object. Cú pháp nh sau :
lngMenuGroupType = MenuGroupObject.Type
CONSTANT VALUE DESCRIPTION
AcBaseMenuGroup 0 Menu group là base menu group.
AcPartialMenuGroup 1 Menu group là partial menu group.
Ví dụ sau sẽ liệt kê tất cả các menu group đã đựoc tải vào trong AutoCad và kiểu của chúng: Public Sub ListMenuGroups()
Dim objMenuGroup As AcadMenuGroup Dim strMenuGroupNames As String
strMenuGroupNames = "The following menu groups are currently loaded, " For Each objMenuGroup In Application.MenuGroups
If objMenuGroup.Type = acBaseMenuGroup Then
strMenuGroupNames = strMenuGroupNames & vbCrLf & _ objMenuGroup.Name & ": Base menu"
Else
strMenuGroupNames = strMenuGroupNames & vbCrLf & _ objMenuGroup.Name & ": Partial menu" End If
Next
MsgBox strMenuGroupNames End Sub
L u ý :
• MenuGroups collection khơng có ph ơng thức Add. Tuy nhiên bạn có thể tạo một bản copy file .mns vào một file mới, sau đó tải và sửa chữa nó theo ý của bạn. Bạn cũng có thể tạo một file .mnu hoặc .mns mới và tải chúng từ VBA.
• Bạn khơng thể chỉnh sửa đ ợc các menu hình ảnh, menu màn hình và các bảng số hóa. Tuy nhiên, bạn vẫn có thể Load và UnLoad chúng bằng VBA.