Windows绘图,用c++编写一个完整代码要求绘制一个绿色矩形,将运行结果一起写出
时间: 2024-10-04 19:04:44 浏览: 15
在Windows环境下使用C++进行图形编程,通常会利用MFC(Microsoft Foundation Classes)或者DirectX库。这里我们简单地通过Windows GDI(Graphics Device Interface) API 来创建一个基本窗口并绘制一个绿色矩形。
首先,确保安装了Visual Studio,并包含`windows.h`头文件,以便使用相关的系统函数。以下是一个简单的代码示例:
```cpp
#include <windows.h>
#include <gdi32.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
switch (message) {
case WM_CREATE:
// 创建设备上下文
HDC hdc = CreateDC("DISPLAY", NULL, NULL, NULL);
SelectObject(hdc, GetStockObject(WHITE_PEN));
HBRUSH brush_green = CreateSolidBrush(RGB(0, 255, 0)); // 绿色brush
return DefWindowProc(hWnd, message, wParam, lParam); // 继续处理消息
case WM_PAINT:
PAINTSTRUCT ps;
HDC hdcPaint = BeginPaint(hWnd, &ps);
// 绘制矩形
Rectangle(hdcPaint, 10, 10, 200, 100); // 左上角(x, y), 宽度, 高度
FillRect(hdcPaint, &Rect(10, 10, 200, 100), brush_green); // 使用绿色填充矩形
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
DeleteObject(brush_green); // 释放资源
DeleteDC(hdc);
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
WNDCLASS wc = {0};
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.lpszClassName = L"GreenRectangleApp";
RegisterClass(&wc);
HWND hWnd = CreateWindow(wc.lpszClassName, L"绿色矩形示例", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
400, 300, NULL, NULL, hInstance, NULL);
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
```
当你运行这个程序时,会看到一个窗口,其中有一个绿色的矩形。关闭窗口后,程序结束。