簡體   English   中英

C中的win32 FillRect()函數問題

[英]Issue with win32 FillRect() function in C

我正在嘗試為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++){

j++替換i++ j++

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM