Chủ đề 7: Menu ngữ cảnh

Menu ngữ cảnh là một phương tiện thuận tiện của giao diện người dùng, tăng tốc đáng kể công việc với ứng dụng. MapInfo phân biệt giữa các menu ngữ cảnh của cửa sổ bản đồ, cửa sổ danh sách,…

Các menu như vậy được quản lý bằng các công cụ phần mềm giống như các menu thông thường (Create Menu, Alter Menu, Alter Menu Item). Bạn có thể vô hiệu hóa menu ngữ cảnh bằng cách sử dụng một lệnh, chẳng hạn như Create Menu “MapperShortcut” As “(-“. Trong trường hợp này, menu ngữ cảnh của cửa sổ bản đồ sẽ bị vô hiệu hóa.

Code: Xây dựng menu ngữ cảnh cửa sổ bản đồ

Sub CreateContextualMenuMap
Create Menu “MapperShortcut” ID 17 As “(-”
Create Menu “MapperShortcut” ID 17 As
“Managing layers …” Calling 801,
“(-“,
“Find Sample” Calling 306,
“(-“,
“You &cut \ tCtrl + H / W ^ X / Mx / XCtrl + x” Calling 202,
“&Copy \ tCtrl + C / W ^ C / Mc / XCtrl + c” Calling 203,
“&Paste \ tCtrl + M / W ^ V / Mv / XCtrl + v” Calling 204,
“Do &Remove \ tDel” Calling 205,
“(-“,
“Show differently …” Calling 805,
“Show as it was” Calling 806,
“Show the entire layer …” Calling 807,
“(-“,
“Deselect” Calling 304,
“Refresh the window” Calling 610,
“(-“,
“Remove Cosmetics” Calling 810,
“! Disable Autoscroll ^ Enable Autoscroll” Calling 815,
“(-“,
“Objects” as “Objects”,
“(-“,
“Geo information …” Calling 207
End Sub

Ở đây, các phương thức được gọi được chỉ định bởi các định danh số, vì điều này được thực hiện trong tệp MapInfo.mnu. Để code dễ đọc hơn, bạn có thể sử dụng các hằng số có tên từ tệp menu.def thay vì số, nhưng trước tiên bạn cần kết nối nó với chương trình bằng lệnh Include “menu.def”. Sau đó, ví dụ lệnh: “Manage layers …” Calling 801 sẽ giống như “Manage layers …” Calling M_MAP_LAYER_CONTROL.

Code: Xây dựng menu ngữ cảnh của hộp danh sách

Sub CreateContextualMenuBrowse
Create Menu “BrowserShortcut” ID 18 As “(-”
Create Menu “BrowserShortcut” ID 18 As
“You &cut \ tCtrl + H / W ^ X / Mx / XCtrl + x” Calling 202,
“&Copy \ tCtrl + C / W ^ C / Mc / XCtrl + c” Calling 203,
“&Paste \ tCtrl + M / W ^ V / Mv / XCtrl + v” Calling 204,
“Do &Remove \ tDel” Calling 205,
“(-“,
“Find Sample” Calling 306,
“Deselect” Calling 304,
“(-“,
“&New entry \ tCtrl + П / W ^ G / Mn / XCtrl + n” Calling 702,
“&Show fields …” Calling 704
End Sub

Tất cả các sơ đồ xây dựng giống nhau, đầu tiên menu bị xóa hoàn toàn, và sau đó được xây dựng lại. Nếu bạn cần thêm một hoặc hai mục mới vào menu ngữ cảnh tiêu chuẩn, thì chỉ cần sử dụng lệnh sau đây Alter Menu ID 18 Add “Number of entries” Calling GetRowCount.

Bình luận bằng Facebook Comments