gdi生成一个十乘十格子的棋盘函数代码
时间: 2023-06-27 09:02:35 浏览: 57
以下是一个十乘十格子的棋盘的生成函数代码:
```c++
#include <iostream>
using namespace std;
void generateChessboard(int size) {
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
if ((i + j) % 2 == 0) {
cout << "X ";
} else {
cout << "O ";
}
}
cout << endl;
}
}
int main() {
int size = 10;
generateChessboard(size);
return 0;
}
```
该函数接受一个参数size,用于指定棋盘的大小。在函数内部,使用了两个循环来遍历整个棋盘,对于每个格子,根据其在棋盘中的位置,决定其应该填充X还是O。最后输出整个棋盘。
相关问题
gdi用画笔代码画一个十乘十的棋盘
好的,下面是使用C++和WinAPI实现的画棋盘的代码:
```c++
#include <Windows.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wcex;
HWND hWnd;
MSG msg;
// 注册窗口类
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = L"MainWindow";
wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if (!RegisterClassEx(&wcex))
{
MessageBox(NULL, L"Call to RegisterClassEx failed!", L"Win32 Guided Tour", NULL);
return 1;
}
// 创建窗口
hWnd = CreateWindow(L"MainWindow", L"Chess Board", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 500, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
MessageBox(NULL, L"Call to CreateWindow failed!", L"Win32 Guided Tour", NULL);
return 1;
}
// 显示窗口
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
// 消息循环
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
// 窗口过程
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
int i, j, x, y, width, height;
switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// 获取客户区大小
RECT rect;
GetClientRect(hWnd, &rect);
width = rect.right - rect.left;
height = rect.bottom - rect.top;
// 画棋盘
x = 0;
y = 0;
for (i = 0; i < 10; i++)
{
for (j = 0; j < 10; j++)
{
if ((i + j) % 2 == 0)
{
SelectObject(hdc, GetStockObject(BLACK_BRUSH));
}
else
{
SelectObject(hdc, GetStockObject(WHITE_BRUSH));
}
Rectangle(hdc, x, y, x + width / 10, y + height / 10);
x += width / 10;
}
x = 0;
y += height / 10;
}
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
break;
}
return 0;
}
```
这个程序会创建一个名为"Chess Board"的窗口,并在窗口中画出一个10乘10的棋盘。
怎么用GDI绘制一个矩形
您可以使用GDI(Graphics Device Interface)来绘制一个矩形。以下是一个使用GDI绘制矩形的简单示例代码,使用C++和Windows API:
```cpp
#include <Windows.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
// 创建一个矩形区域
RECT rect = { 100, 100, 300, 200 };
// 设置画刷颜色
HBRUSH hBrush = CreateSolidBrush(RGB(255, 0, 0)); // 红色
// 绘制矩形
FillRect(hdc, &rect, hBrush);
// 释放资源
DeleteObject(hBrush);
EndPaint(hwnd, &ps);
return 0;
}
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// 创建窗口类
WNDCLASS wc = { 0 };
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszClassName = L"RectWindowClass";
// 注册窗口类
RegisterClass(&wc);
// 创建窗口
HWND hwnd = CreateWindow(wc.lpszClassName, L"绘制矩形示例", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 500, 400, NULL, NULL, hInstance, NULL);
// 显示窗口
ShowWindow(hwnd, nCmdShow);
// 消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
```
这个示例代码会创建一个窗口,并在窗口的客户区绘制一个矩形。使用`RECT`结构定义矩形的左上角和右下角坐标,然后使用`CreateSolidBrush`函数创建一个红色的画刷,最后使用`FillRect`函数填充矩形区域。
请注意,这是一个简单的示例代码,仅用于演示如何使用GDI绘制矩形。在实际应用中,您可能需要处理更多的消息和事件,以及添加其他绘制操作和交互功能。
希望这个示例能对您有所帮助。如果您有任何进一步的问题,请随时提问。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)