floodfill函数在游戏程序中的使用问题

    我写了一个格子涂色游戏,虽然程序正确,但是不太明白floodfill的原理,为什么程序中的floodfill函数在鼠标点击了绘图板上的颜色以后,在进行格子填充的时候,填充的是当前选中颜色而不是floodfill函数中的WHITE白色

#include<graphics.h>
#include<conio.h>

int main() {

    initgraph(1280, 960);

    LOGFONT f;
    gettextstyle(&f);                        // 获取当前字体设置
    f.lfHeight = 48;                        // 设置字体高度为 48
    _tcscpy_s(f.lfFaceName, _T("黑体"));    // 设置字体为“黑体”(高版本 VC 推荐使用 _tcscpy_s 函数)
    f.lfQuality = ANTIALIASED_QUALITY;        // 设置输出效果为抗锯齿  
    settextstyle(&f);                        // 设置字体样式
    outtextxy(540, 30, _T("格子涂色"));

    for (int x = 320, y = 360; y < 1000; x += 40, y += 40) {
        for (int b = 100, n = 140; n < 460; b += 40, n += 40) {            
                rectangle(x,b,y,n);
        }
    }
    float H, S, L;                                        // 定义 HSL 颜色模型的 3 个变量
    H = 0;
    S = 1;
    L = 0.5f;

    for (int i = 300; i != 1000; ++i)                        // 绘制调色板颜色
    {
        L += 0.000000085f;
        S -= 0.0013f;
        setlinecolor(HSLtoRGB(H, S, L));
        line(i, 450, i, 500);
        if (i % 50 == 0)
            H = H + 20;
    }

    MOUSEMSG m;

    while (true) {

        m = GetMouseMsg();

        switch (m.uMsg)
        {
        case WM_LBUTTONDOWN:
            //判断鼠标单击的位置
            if (m.x > 300 && m.x < 1000 && m.y>450 && m.y < 1000)
                setfillcolor(getpixel(m.x, m.y));        //获取点的颜色
            if (m.x > 320 && m.x < 1000 && m.y>100 && m.y < 460)
                floodfill(m.x, m.y, WHITE);                //填充该点所在的封闭区域
            break;
        }
    }

    _getch();                // 按任意键继续
    closegraph();            // 关闭图形窗口
    return 0;
}