2013-02-28 28 views
10

Tôi đang hiển thị với OpenGL. Công cụ của tôi là sandboxed vì vậy tôi sử dụng CreateDesktop() để ngăn chặn các cuộc tấn công vỡ. Tuy nhiên, máy tính để bàn mới không có thành phần Aero khi được tạo ra vì bất kỳ lý do gì (mặc dù là mặc định) và cố gắng kích hoạt nó với DwmEnableComposition() không thành công. Tôi không biết tại sao, hoặc làm thế nào để giải quyết vấn đề này. DwmEnableComposition() hoạt động tốt trên màn hình nền mặc định. Có cách nào để có vs vsync để làm việc mà không có thành phần? Tôi không thể làm như vậy, ngay cả khi bị buộc phải rời khỏi bảng điều khiển của nvidia. Giải pháp ở đây là gì?Không có vsync không có thành phần Aero; không thể bật Aero trên CreateDesktop() làm cho máy tính để bàn

Tôi đang sử dụng Windows 7. Trong Windows 8, họ nói rằng người dùng không thể tắt bố cục, vì vậy tôi tự hỏi liệu sự cố này sẽ không có mặt ở đó nữa không.

+3

Theo tôi biết, thành phần DWM bị giới hạn ở màn hình mặc định trong Windows 7 và luôn bị vô hiệu hóa trên các máy tính để bàn khác. Bạn có thể thấy điều này trên dấu nhắc UAC và màn hình đăng nhập/ctrl + alt + del, không bật hiệu ứng Aero. Tôi khá chắc chắn rằng điều này đã thay đổi với Windows 8, để tất cả các máy tính để bàn hiện được hiển thị bởi DWM. – ollb

+0

@ollb, đó là câu trả lời. – Ben

Trả lời

2

Theo như tôi biết, thành phần DWM bị giới hạn ở màn hình mặc định trong Windows 7 và luôn bị tắt trên các máy tính để bàn khác. Bạn có thể thấy điều này trên dấu nhắc UAC và màn hình đăng nhập/ctrl + alt + del, không bật hiệu ứng Aero. Tôi khá chắc chắn rằng điều này đã thay đổi với Windows 8, để tất cả các máy tính để bàn hiện được hiển thị bởi DWM.