gpt4 book ai didi

c - C 中 win32 FillRect() 函数的问题

转载 作者:行者123 更新时间:2023-12-04 13:38:57 24 4
gpt4 key购买 nike

我正在尝试为 2048 游戏绘制一个由 100x100 矩形组成的 4x4 网格,矩形之间的距离为 50px。我遵循了教程并尝试创建一个在创建窗口时调用的drawCases()函数。如果我注释掉以下行,则窗口已创建并且一切正常(除了未绘制矩形):

FillRect(hdc,&rectangles[i][j],(HBRUSH)GetStockObject(LTGRAY_BRUSH));

否则程序会崩溃。这是整个函数:

void drawCases(HWND hwnd){
HDC hdc = GetDC(hwnd);

// Error Check
if(!hdc)
return;

RECT clientRect;
RECT rectangles[4][4];
GetClientRect(hwnd,&clientRect); // Get the window's client area RECT
FillRect(hdc,&clientRect,(HBRUSH)GetStockObject(BLACK_BRUSH));
int leftStart = (clientRect.right)/2 - 200;
int topStart = (clientRect.bottom)/2 - 200;
for (int i = 0; i < 4; i++){
for (int j = 0; j < 4; i++){
int k = j * 150;
int n = i * 150;
rectangles[i][j].left = k + leftStart;
rectangles[i][j].right = k + leftStart + 100;
rectangles[i][j].top = topStart + n;
rectangles[i][j].bottom = topStart + n + 100;
FillRect(hdc,&rectangles[i][j],(HBRUSH)GetStockObject(LTGRAY_BRUSH));
}
}
ReleaseDC(hwnd,hdc);
}

感谢您的帮助!

最佳答案

这里是可能的错误:

 for (int j = 0; j < 4; i++){

i++替换为j++

关于c - C 中 win32 FillRect() 函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30399103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com