Mình mở cũng không thấy động tĩnh gì, có phải là thiếu Controls gì không nhỉ?
Không phải.
Nói nôm na thì như thế này. ToolTop có thể tạo bằng nhiều cách. Trước tiên phải tạo một cửa sổ và nó sẽ quản lý các tool. Những tool này phải thêm vào tập các tool quản lý bởi cái cửa sổ kia. Có nhiều cách tạo tool. Tôi dùng cách như sau:
Nếu trong vùng client area của một cửa sổ nào đó ta muốn hiển thị tooltip thì ta cho thuộc tính hWnd của cấu trúc tagTOOLINFOW = handle của cửa sổ đó. Tiếp theo ta thiết lập thuộc tính rc của cấu trúc trên = vùng hình chữ nhật trong client area (thiết lập tọa độ (x, y) của góc trái bên trên và góc phải bên dưới) của cửa sổ có handle là hWnd. Và thiết lập thuộc tính lpszText = text cần hiển thị. Sau đó ta thêm tool có các thuộc tính như thế vào tập tool quản lý bởi cửa sổ tạo ban đầu. Do có 3 thông tin là hWnd, rc và lpszText nên "người quản lý" tool biết là khi trỏ chuột "đi vào" vùng có tọa độ được xác định bởi rc trong cửa sổ có handle là hWnd thì nó phải hiển thị tooltip có text = lpszText. Và khi trỏ chuột "đi ra khỏi" vùng rc thì nó phải "tắt" tooltip.
Nếu ta cần hiển thị những text khác nhau khi trỏ chuột đi vào những vùng khác nhau trong client area của cửa sổ có handle là hWnd thì với mỗi vùng ta tạo và thêm 1 tool với rc (xác định vùng hình chữ nhật) và lpszText (text cần hiển thị) khác nhau.
UserForm có class là "ThunderDFrame" (Office >= 2000). Vùng client area lại có một cửa sổ con (con của cửa sổ "ThunderDFrame") và trên nó các CommandButton, ComboBox, Image được vẽ. Ta phải thiết lập handle của cửa sổ con này cho thuộc tính hWnd kể trên.
Tôi kiểm tra trên XP Home Edition và Excel 2007 thì cửa sổ con có class là "F3 Server 60000000"
Tôi cũng đã kiểm tra trên Excel 2007 nhưng Windows 7 Starter thì cửa sỗ con không có class là "F3 Server 60000000". Vì thế không tìm thấy cửa sổ con nếu ta tìm theo class "F3 Server 60000000". Kết quả là tool của ta không có giá trị.
Tôi kiểm tra thì với Excel 2007 + Windows 7 Starter thì cửa sổ con có class là "F3 Server 6a070000"
Nếu tìm cửa sổ con có class như thế thì tooltip hiển thị bình thường.
------------
Tôi sửa code: trước tiên tìm cửa sổ con có class là "F3 Server 60000000", nếu không tìm thấy thì tìm cửa sổ con có class là "F3 Server 6a070000"
Chỉ có một nỗi lo là class của cửa sổ con thay đổi liên tục thì rách việc quá. Lúc đó có lẽ không tìm theo class mà tìm "con đầu lòng" chăng?
Tôi đã gửi lại tập tin ở bài #11. Bạn và bạn
nghiaphuc kiểm tra và thông báo cho tôi nhé.