2009-05-05 31 views
15

Tôi đang cố gắng giúp một người khuyết tật với một chút mã để giúp anh ta chơi trò chơi dễ dàng hơn. Anh ta bị giới hạn bởi một bi xoay và một nút duy nhất.Ngăn chặn thay đổi tiêu điểm cửa sổ

Hiện tại, anh ấy sử dụng bàn phím ảo và đã quản lý để chơi các trò chơi khác bằng cách sử dụng bàn phím ảo. Tôi đã tạo một chút mã để thử và làm cho cuộc sống của anh ấy dễ dàng hơn. Nó sử dụng các nút di chuột cho các phím. Khi con trỏ chuột nhập vào nút, nó sẽ gửi khóa xuống, khi nó di chuyển ra khỏi nút, nó sẽ gửi khóa lên.

Tôi làm việc đó và tôi nghĩ (hoặc hy vọng) anh ấy sẽ thích nó. Nó hoạt động khá tốt khi tôi thử nghiệm nó.

Tôi muốn thêm một chức năng nữa vào đó. Nếu anh ta nhấp chuột trong khi trên kiểm soát của tôi, tôi muốn gửi một đột quỵ quan trọng khác. Không phải là một vấn đề, tôi có thể làm điều đó. Tuy nhiên, khi tôi làm điều đó cửa sổ tập trung chuyển từ các trò chơi để kiểm soát của tôi.

Tôi thấy điều này trên MSDN:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/48737c2b-7e6f-4ade-ac1c-7dd2f5cc2b88/

đó làm việc để ngăn chặn cửa sổ của tôi từ kích hoạt, nhưng nó vẫn gây ra các trò chơi mất tập trung. Tôi có thể tập trung trở lại trò chơi, nhưng tôi thích nếu nó không bao giờ mất tập trung.

Tôi đang mã hóa bằng C# và WPF.

Bất kỳ ai có ý tưởng về cách bạn có thể làm điều đó?

John Fenton

+0

Hãy thử trang này: http://stackoverflow.com/questions/2444842/keeping-an-application-on-top-and-in-focus-always/3338447#3338447 – MonkeyWrench

+0

Điều đó sẽ không hoàn toàn hiệu quả, MonkeyWrench. Điều đó sẽ giữ cho cửa sổ của bạn trên đầu trang, nhưng nó sẽ không ngăn chặn nó khỏi ăn cắp tập trung từ các trò chơi. –

Trả lời

2

Hook ở một mức độ nào chuột và bàn phím móc thấp, và ứng dụng của bạn sẽ không cần phải ăn cắp tập trung và đưa nó trở lại.

Hãy xem this pastie of a simple WPF app, dựa nhiều vào số an article by Stephen Toub.

Bất cứ khi nào bạn nhấp chuột trái, ở bất kỳ đâu, nhấp chuột trái thứ hai sẽ được gửi, vì vậy bạn có thể nhấp đúp một cách hiệu quả. Bạn có thể đạt được mục tiêu của mình bằng cách ẩn ứng dụng của bạn bất cứ khi nào người dùng nhấp, để ứng dụng của bạn không bao giờ lấy được tiêu điểm. Sau đó, phát hiện vị trí của nhấp chuột và quyết định xem một trong các nút của bạn có được nhấn hay không và hành động tương ứng.

Tôi nhận ra rằng tôi đang tìm hiểu điều này trong quá khứ, nhưng hy vọng ai đó sẽ tìm thấy câu trả lời này hữu ích. Chúc mừng, và tốt cho bạn để biến chương trình của bạn để hỗ trợ một người đồng loại!

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