2010-03-31 71 views
6

Tôi đang làm việc trên cây SWT tương tự như here, tuy nhiên, tôi muốn có thể hiển thị dấu + trong một số trường hợp thay vì - đối với mục cây mở rộng. Điều này có thể không?Cách thay đổi biểu tượng dấu cộng/trừ SWT Tree

Nếu không, có API Windows để có biểu tượng tùy chỉnh cho trạng thái mở rộng/thu gọn của mục cây không?

+0

Giải pháp là sử dụng tin nhắn TVE_EXPANDPARTIAL trong Windows. – Ali

Trả lời

2

Thành phần SWT Tree sử dụng tiện ích Cây gốc nếu có, ví dụ trong trường hợp Windows - nó sử dụng tiện ích gốc trong khi trên Linux (phụ thuộc vào công cụ UI đang được sử dụng), nó có thể tự tạo cây tùy chỉnh.

Trên hệ điều hành nơi nó sử dụng tiện ích cây bản địa, bạn không thể tùy chỉnh biểu tượng + và -.

Như Ali đề xuất (xem http://msdn.microsoft.com/en-us/library/bb773568%28VS.85%29.aspx), bạn có thể muốn sử dụng TVE_EXPANDPARTIAL, nhưng hãy nhớ rằng mã sẽ phụ thuộc vào hệ điều hành (ngay cả trong các phiên bản Windows).

Tuy nhiên, bạn có thể muốn sử dụng hình ảnh tùy chỉnh - sử dụng phương thức getImage() trong số TreeContentProvider để chỉ ra cách khác thay vì dựa vào TVE_EXPANDPARTIAL. Điều này cũng sẽ đảm bảo rằng mã của bạn là hệ điều hành độc lập.

+0

Cảm ơn! TreeContentProvider không phải là một phần của SWT mặc dù ... Không chắc chắn làm thế nào bạn bạn sẽ làm điều đó nhưng bạn mang lại một điểm tốt về mã có được hệ điều hành phụ thuộc. Tôi đã kết thúc việc triển khai phiên bản 64 bit và phiên bản 32 bit của lớp con SWTTree. – Ali

+0

Ah! Tôi quên ... đó là một phần của JFace. Lớp liên quan là TreeViewer. –

+1

setImage không thực sự thay đổi biểu tượng +/-. Nó thêm một hình ảnh ở bên phải của biểu tượng +/-. – Ali

Các vấn đề liên quan