2011-04-06 29 views
7

Trước hết tôi muốn đề cập đến rằng tôi đã đọc tất cả các bài viết về SO về chủ đề, nhưng vẫn không có câu trả lời cho câu hỏi của tôi. Ngoài ra câu hỏi của tôi hơi khác so với những người khác.
Hôm nay tôi có một cái nhìn trên cửa sổ Skype. Có một nút phụ trên thanh tiêu đề của nó. Nhưng nút này hoạt động như nút hệ thống gốc. Chỉ cần nhìn vào phát sáng, nó trải ra ngoài cửa sổ. Vì vậy, tôi có câu hỏi hợp lý. Theo đó chúng ta có thể thấy trên hình dưới đây, có cách tiêu chuẩn để thêm nút thêm vào thanh tiêu đề. Nhưng tất cả các câu trả lời trên nhánh phụ dẫn đến việc gắn kết sự kiện WM_NCPAINT sự kiện và bản vẽ thủ công của nút bổ sung. Cách tiếp cận này là công việc nhưng nó không thể mang lại vẻ đẹp rực rỡ như trên hình ảnh.
Có ai biết cách thêm nút standartized trên thanh tiêu đề của cửa sổ không? Cảm ơn bạn trước!
enter image description hereLàm thế nào để thêm một nút thêm vào thanh tiêu đề cửa sổ, vì vậy nó sẽ làm việc như là tiêu chuẩn?

+0

Tôi nghĩ rằng tất cả các nút thanh tiêu đề có thể tuỳ chỉnh một – anishMarokey

+0

@anishMarokey . Vâng, tôi có giả thuyết tương tự, nhưng làm thế nào để đạt được phát sáng như vậy? –

Trả lời

3

Trong Vista và Windows 7, có một thứ mới được gọi là Trình quản lý cửa sổ màn hình. Điều này được sử dụng để vẽ các thanh tiêu đề cửa sổ "Aero glass" và thực hiện các hiệu ứng ánh sáng. Cách tiếp cận Windows XP cũ của việc triển khai các trình xử lý WM_NCPAINT không hoạt động với hệ thống mới này, vì vậy bạn phải sử dụng một API hoàn toàn mới.

Tôi chắc rằng tôi đã xem một số bài viết về cách thực hiện những gì bạn đang yêu cầu, nhưng không thể tìm thấy chúng ngay bây giờ. Một số trang mà có thể cung cấp cho bạn một số dẫn là:

+0

Điểm liên kết thứ ba của bạn cho câu hỏi này, vì vậy tôi đoán nó sẽ không hữu ích;) –

+0

Có, liên kết thứ ba mang đến vòng lặp chết trong câu hỏi này :) Bất kỳ cách nào cảm ơn bạn đã trả lời, tôi sẽ khám phá tất cả các liên kết một cách cẩn thận –

+1

Xin lỗi, Tôi đã sao chép từ một trang khác, nhưng phải mất URL trong bản dịch. (Mặc dù có một câu trả lời thực sự tuyệt vời về câu hỏi mà tôi đã liên kết tới :-) –

1

Vâng, điều này có thể (và chắc chắn ) thực hiện bằng cách gắn WM_NCPAINT và vẽ nút của họ để đáp ứng với nó. Các "phát sáng" chỉ là vấn đề chọn màu sắc thích hợp và bóng (và có thể làm một chút pha trộn alpha để có một số "ánh sáng" hiển thị gần nút).

+0

Chà! Cảm ơn bạn, Jerry, cho câu trả lời của bạn! Bạn có thể tư vấn cho tôi một cách tôi có thể tìm hiểu thêm về việc che giấu những thứ như vậy không? –

+0

@Anton: Tôi đoán hầu hết những thứ nhỏ như thế này được thực hiện bằng tay trong một cái gì đó giống như Photoshop. Các thay thế tại chỗ sẽ là tạo ra một mô hình 3D của mặt trước cong cho nút, làm cho nó trong một cái gì đó như DirectX hoặc OpenGL, và nắm bắt những gì tạo ra và sử dụng nó như là một bitmap để vẽ nút của bạn. –

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