Cách Lấy Tay Cầm Cửa Sổ

Mục lục:

Cách Lấy Tay Cầm Cửa Sổ
Cách Lấy Tay Cầm Cửa Sổ

Video: Cách Lấy Tay Cầm Cửa Sổ

Video: Cách Lấy Tay Cầm Cửa Sổ
Video: hướng dẫn làm cửa nhôm hệ 55 Cách lắp tay nắm cửa sổ 2024, Có thể
Anonim

Khái niệm về giao diện người dùng trong Windows dựa trên khái niệm về một cửa sổ. Hộp thoại, nút, bảng điều khiển, danh sách đều là cửa sổ. Do đó, để thực hiện bất kỳ hành động nào với bất kỳ phần tử nào trong giao diện của ứng dụng của riêng bạn hoặc của người khác, bạn cần phải có một tay cầm cửa sổ.

Cách lấy tay cầm cửa sổ
Cách lấy tay cầm cửa sổ

Cần thiết

  • - Gói SDK nền tảng;
  • - trình biên dịch.

Hướng dẫn

Bước 1

Lấy tay cầm cửa sổ bằng cách tạo nó. Thực hiện lệnh gọi đến các hàm API CreateWindow hoặc CreateWindowEx hoặc gọi các phương thức trình bao bọc thích hợp (trên các đối tượng cần thiết) của các lớp của khung hoặc thư viện đã sử dụng đóng gói chức năng làm việc với cửa sổ hoặc điều khiển. Các hàm CreateWindow và CreateWindowEx trực tiếp trả về cửa sổ xử lý khi tạo thành công. Nếu gọi không thành công, chúng trả về NULL. Có thể yêu cầu mã lý do lỗi bằng cách sử dụng hàm API GetLastError. Bạn có thể lấy nguyên mẫu và mô tả chi tiết về các tham số của các hàm CreateWindow và CreateWindowEx từ các liên kết https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx và https:// msdn.microsoft.com / en-us / library / windows / desktop / ms632680% 28v = vs.85% 29.aspx Khi sử dụng các lớp của các khung khác nhau, việc tạo các đối tượng cửa sổ của hệ điều hành có thể diễn ra một cách rõ ràng (bằng cách gọi một phương thức) hoặc ngầm định (thực hiện chiến lược RAII). Do đó, tốt hơn là bạn nên lấy window xử lý trên một đối tượng khởi tạo sẵn. Bạn có thể tìm hiểu về các phương thức của các lớp trả về tay cầm cửa sổ được đóng gói bởi đối tượng trong tài liệu của khuôn khổ tương ứng. Ví dụ, trong MFC, một phương thức tương tự là GetSafeHwnd của lớp CWnd.

Bước 2

Tìm tay cầm cửa sổ bằng cách tìm kiếm nó. Sử dụng các hàm API FindWindow và FindWindowEx hoặc các trình bao bọc đối tượng lớp thích hợp cho khuôn khổ bạn đang sử dụng. FindWindow trả về một chốt cho cửa sổ cấp cao nhất nếu được tìm thấy hoặc NULL khi bị lỗi. Tìm kiếm được thực hiện theo tên lớp và tiêu đề cửa sổ. Bạn có thể tìm thấy mô tả về các tham số và khía cạnh của hàm tại liên kết https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx. Ngữ nghĩa của chức năng FindWindowEx tương tự như FindWindow với sự khác biệt duy nhất là nó tìm kiếm các cửa sổ con. Tài liệu cho FindWindowEx có sẵn tại

Bước 3

Tìm tay cầm của cửa sổ trong khi liệt kê các bộ của chúng. Sử dụng các hàm API EnumWindows, EnumChildWindows, EnumThreadWindows hoặc các phương thức của các đối tượng lớp của khuôn khổ mà bạn đang sử dụng. Các hàm EnumWindows và EnumChildWindows lần lượt liệt kê các cửa sổ cấp cao nhất và cửa sổ con. Hàm EnumThreadWindows liệt kê tất cả các cửa sổ không phải con của luồng được chỉ định. Mỗi hàm này phải được chuyển một con trỏ đến một thủ tục gọi lại, con trỏ này sẽ được chuyển cho các xử lý của các cửa sổ được tìm thấy dưới dạng tham số trong quá trình hoạt động. Bằng cách kết hợp các hàm liệt kê, lấy và phân tích các thuộc tính của cửa sổ trong thủ tục gọi lại, bạn có thể tìm thấy xử lý của cửa sổ bắt buộc. Tài liệu cho các chức năng được mô tả được cung cấp tại các liên kết: - EnumWindows: https://msdn.microsoft.com/en-us/library/windows/desktop/ms633497%28v=vs.85%29.aspx; - EnumChildWindows: https:// msdn.microsoft.com/en-us/library/windows/desktop/ms633494%28v=vs.85%29.aspx; - EnumThreadWindows: https://msdn.microsoft.com/en-us/library / windows / desktop /ms633495%28v=vs.85%29.aspx.

Bước 4

Nhận một tay cầm cửa sổ ở tọa độ đã biết. Các hàm WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx trả về các điều khiển cho các cửa sổ mà điểm được chỉ định thuộc về. Hàm WindowFromPoint là hàm dễ sử dụng nhất, nhưng không trả về các điều khiển cho các cửa sổ bị ẩn hoặc bị vô hiệu hóa. Bạn có thể tìm tài liệu về cách sử dụng nó tại https://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx. Các hàm ChildWindowFromPoint và ChildWindowFromPointEx tìm các chốt cho trẻ cửa sổ của một cửa sổ cha nhất định thuộc một điểm nhất định. Trong trường hợp này, hành vi của ChildWindowFromPointEx có thể được kiểm soát linh hoạt bằng cách sử dụng một tham số bổ sung. Tài liệu cho các chức năng này được cung cấp bởi các liên kết: - ChildWindowFromPoint: https://msdn.microsoft.com/en-us/library/windows/desktop/ms632676%28v=vs.85%29.aspx; - ChildWindowFromPointEx: https:// msdn.microsoft.com/en-us/library/windows/desktop/ms632677%28v=vs.85%29.aspx.

Đề xuất: