2010-06-05 79 views
6

Làm cách nào để vẽ một thứ gì đó trên màn hình? không phải cửa sổ bảng điều khiển nhưng toàn bộ màn hình, tốt nhất là với bảng điều khiển được thu nhỏ.Làm thế nào để vẽ ra màn hình bằng C++?

Ngoài ra, nó có hiển thị trên màn hình in không? Những gì tôi muốn làm là tạo ra một cái gì đó giống như một lớp trên đầu trang của màn hình mà chỉ có tôi và aplication của tôi nhận thức được nhưng vẫn có thể sử dụng aplications như bình thường.

Dưới đây là ví dụ: Giả sử tôi muốn 2 ô vuông màu vàng 5 x 5 pixel xuất hiện ở giữa màn hình phía trên tất cả các ứng dụng khác, không thể nhấp và ẩn với màn hình in.

[Chỉnh sửa]

Tôi quên đề cập đến việc tôi đang sử dụng Visual Studio 2010 trên Windows XP.

+2

Trên hệ điều hành nào? – bmargulies

+1

Ngữ cảnh khác về những gì bạn đang cố gắng hoàn thành có thể hữu ích ở đây. – Thanatos

+0

Có vẻ như bạn đang tạo ra một người lừa đảo ngăn người xấu đóng ứng dụng. : D –

Trả lời

6

trong cửa sổ bạn có thể sử dụng hàm GetDC. chỉ là một ví dụ Minimalistic:

#include <Windows.h> 
#include <iostream> 

void drawRect(){ 
    HDC screenDC = ::GetDC(0); 
    ::Rectangle(screenDC, 200, 200, 300, 300); 
::ReleaseDC(0, screenDC); 
} 
int main(void){ 
    char c; 
    std::cin >> c; 
    if (c == 'd') drawRect(); 
    std::cin >> c; 
    return 0; 
} 

nhưng kể từ khi Windows Vista đó là rất chậm

+2

Sử dụng Direct2D trên Windows Vista. – Puppy

+0

Có, nó hoạt động, nhưng nó xuất hiện trong màn hình in: P Tôi tự hỏi nếu có một cách để làm cho nó vô hình với bất kỳ chụp màn hình. – Kesarion

+0

Làm cách nào để thay đổi màu? : D. – JSideris

4

C++ không có khái niệm về một "màn hình" và đặc biệt là không ai trong số "đồ họa". Chức năng cần thiết được cung cấp bởi hệ điều hành của bạn. Trên nhiều hệ thống, bạn sẽ cần một "Cửa sổ" và vẽ lên nó. Để thực hiện điều này một cách hợp lý, một thư viện như Qt có thể giúp bạn. Một giải pháp Windows đã được đưa ra bởi Oops. Có thể bạn muốn sử dụng một số thư viện OpenGL, hoặc DirectDraw/Direct3D của Windows từ DirectX, trong trường hợp bạn muốn làm một số thứ 3D với đồ họa của bạn.

+0

Một thư viện đồ họa đa nền tảng khác: http://en.wikipedia.org/wiki/Simple_DirectMedia_Layer –

2

Thư viện đồ họa (khá đẹp nhưng không được cập nhật gần đây) anti-grain geometry có các ràng buộc rất đơn giản để hiển thị bản trình diễn trên nhiều hệ thống cửa sổ khác nhau, bạn có thể xem các ví dụ đó. Nhưng đối với bất cứ điều gì nhiều hơn nữa có liên quan bạn có thể nói về hệ điều hành thư viện cụ thể.

2

Windows cung cấp GDI/+, WPF và DirectX (bao gồm Direct2D trên Vista +).

+0

Bạn có thể hiển thị ví dụ về việc sử dụng các thư viện này không? – Hydro

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